Search
Write a publication
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
Получится, если они imutable.
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
О! Pi не зависит от постоянной Планка?
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