我们知道pure functions:
这导致我们referential transparency - 其中表达式可以用值替换,而不会改变程序的行为。
这告诉我们,如果某个程序排除了程序运行环境中实体的破坏性修改(更新),则该程序可以说是purely functional。
努力解决"纯粹的"在FP设置实际上意味着,考虑应用程序本身是一个变异协议(堆栈)
我的问题是:' pure'函数式编程意味着应用程序是否会改变堆栈?
答案 0 :(得分:2)
函数改变堆栈的事实是机器实现的结果。定义纯粹无关紧要,就像使用'值'需要改变处理器内核中的寄存器一样无关紧要。
如果函数不改变(或依赖)其自身堆栈帧外部的任何东西(例如全局变量,io,随机性),它仍然可以被视为纯粹的。