Ссылочная прозрачность

Ссылочная прозрачность и ссылочная непрозрачность — это свойства частей компьютерных программ. Выражение называется ссылочно прозрачным, если его можно заменить соответствующим значением без изменения поведения программы. В результате вычисления ссылочно прозрачной функции дает одно и то же значение для одних и тех же аргументов. Такие функции называются чистыми функциями.

В математике все функции являются ссылочно прозрачными согласно определению математической функции. Однако в программировании это не всегда так. Чтобы дополнительные смысловые ассоциации слова «функция» не вводили в заблуждение, нередко используют термины «процедура» и «метод». В функциональном программировании рассматриваются только ссылочные прозрачные функции. Некоторые языки программирования обеспечивают средства для гарантирования ссылочной прозрачности. Некоторые языки функционального программирования обеспечивают ссылочную прозрачность для всех функций.

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

Поскольку прозрачность ссылок требует одинаковых результатов для любого заданного набора входных данных в любой момент времени, то ссылочно прозрачное выражение является поэтому детерминированным.

Источник: Википедия

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я