Pull to refresh

Comments 37

а сферические кони в вакууме так и вообще идеальны…
UFO landed and left these words here
Тип документа уже нельзя отредактировать. Следующий раз обязательно так и сделаю.
UFO landed and left these words here
Это в статье (переводе?) ошибочка.

Разумеется, если в D функция отмечена pure, то пользоваться глобальными переменными не получится. :)
UFO landed and left these words here
UFO landed and left these words here
ну не любая, а, ещё раз повторюсь, imutable. что даёт уверенность в том, что её значение останется неизменным.
UFO landed and left these words here
Да ладно, а если функции имеет дело с геометрией и активно используют число pi, то прикажете 3.14 забивать в тело каждой функции? Кажется общепринято порицать copy-paste.
UFO landed and left these words here
Ну как всегда две стороны одной медали. Одно дело когда immutable переменные являются стойкими, и, например, относятся к константам из какой-либо науки. Другое дело, когда её объявил коллега. Допустим это BUFFER_SIZE. И захотел в какое-то время поставить ей слишком высокое занчание — получаем возможность «Out of memory». Или слишком низкое — получаем возможность падения производительности. Или, что ещё хуже, таймауты по пути следования данных.
UFO landed and left these words here
UFO landed and left these words here
ħ = 4πRr2cm, где
  R — константа ридберга
  r — Боровский радиус
  c — скорость света
  m — масса электрона

?
UFO landed and left these words here
Число Пи — отношение длины окружности к её радиусу, поверьте, оно не зависит от постоянной Планка.
Глобальные переменные можно использовать, если они imutable.
Интересный теоритический материал. Заинтересовал данный язык, однако информации немного по нему. Буду рад, если вы, а также другие хабрапользователи, будете снабжать читателей новыми статьями. ;)
Автор, исправь ошибку в самом начале поста:
Чистые функии
Надо: Чистые функиЦи
Точнее Чистые функЦии (сам ошибся указывая на чужую ошибку)
Не совсем понимаю как в первая функция запрещает изменение содержимого передаваемого массива. То есть const int[] a предохраняет изменение массива (или только ссылки на него?) в контексте функции, но не за ее пределами. Поэтому при асинхронном выполнений возникнет несоответствие «concurrent array modification».

Вообще передача ссылочных типов в «чистые» функции нарушает их изолированность от контекста выполнения. Единственный вариант сохранения изоляции — это делать глубокие unmodified копии передаваемых объектов. Иначе, для пущей чистоты, придется запретить ссылки.
Могут быть чистые методы? Или достаточно const-методов?
Sign up to leave a comment.

Articles