【发布时间】:2016-06-26 04:50:39
【问题描述】:
我们知道pure functions:
- 对于给定的输入总是返回相同的结果
- 不产生副作用
这将我们引向referential transparency - 一个表达式可以用一个值替换而不改变程序的行为。
这告诉我们,如果一个程序排除了程序运行环境中实体的破坏性修改(更新),则该程序可以说是purely functional。
考虑到 FP 设置中“纯”的实际含义,考虑到应用程序本身是一种变异协议(堆栈)
我的问题是:如果应用程序改变堆栈,函数式编程中的“纯”是什么意思?
【问题讨论】:
-
如果堆栈不存在则意味着相同?堆栈只是一个实现细节,在定义“纯”函数时应该无关紧要。
标签: functional-programming side-effects purely-functional mutation referential-transparency