Re: Материалы по детерминированности функций
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 03.06.11 09:31
Оценка: +1
Здравствуйте, VVP, Вы писали:

VVP>Вопрос возник из лени.

VVP>Может кто-нибудь подкинуть ссылки, желательно на русскоязычные ресурсы, где объясняются плюсы детерминированности функций проверки значений или проведения вычислений над параметрами, и объясняются минусы изменения параметров таких функций или внешнего окружения?

Детерминированность — зависимость функции ТОЛЬКО от параметров. То есть при одинаковых параметрах функция всегда возвращает одинаковое значение. Это позволяет производить некоторые оптимизации, заменять вычисления на таблицы, кешировать (мемоизировать) результаты.

VVP>Грубо говоря, объясняющие, почему bool IsCorrect(CObject obj, CRef value), не должен менять внутреннее состояния obj.

Тут мы уже касаемся "чистоты" (purity). Чистота функции означает что она не изменяет никакое состояние. Это позволяет переупорядочивать вычисления, распараллеливать их.

Два свойства совместно открывают большой простор для оптимизации программ. Возможность параллелить вычисления и кешировать результаты уже может сделать программу в разы-десятки раз быстрее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.