Ссылочная прозрачность
Что означает термин "ненаблюдаемый", когда он используется в контексте с термином "относительная прозрачность" в функциональном программировании?
1 ответ
Решение
Как вы, возможно, знаете, термин "ссылочно-прозрачный" означает, что значение выражения может зависеть только от значений его частей, а не от любых других фактов о них.
Например, это не может зависеть от следующего:
- Оценивается ли какая-то часть выражения или нет (на ленивом языке)
- Совместно ли используются два одинаковых значения (указатели на одно и то же место в памяти) или нет
- Является ли структура данных циклической (т.е. ее указатели создают цикл) или нет
Все эти факты о текущем состоянии программы являются истинными или ложными, но никакое выражение не может изменить их значение в зависимости от них. Так что эти вещи называются ненаблюдаемыми.
Этот комикс и его обсуждение на Reddit может также просветить вас.