Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我们知道纯函数:
这使我们实现了引用透明性——在不改变程序行为的情况下,可以将表达式替换为值。
这告诉我们,如果一个程序排除了程序运行环境中实体的破坏性修改(更新),则可以说它是纯功能性的。
这位评论员写道:
考虑到 FP 设置中的“纯”实际意味着什么,考虑到应用程序本身是一个突变协议(堆栈)
我的问题是:如果应用程序改变堆栈,函数式编程中的“纯”意味着什么?
函数改变堆栈的事实是机器实现的结果。定义 pure 无关紧要,就像使用“值”需要改变处理器内核中的寄存器这一事实无关紧要。
如果一个函数不改变(或依赖)它自己的堆栈帧外部的任何东西(例如全局变量、io、随机性),它仍然可以被视为纯函数。