功能编程 – 单一分配的目的

我正在努力掌握Erlang.这是我研究的第一个函数式编程语言,我注意到在Erlang中,您执行的每个任务都是单个赋值.显然,不仅在Erlang中,而且在许多其他函数式编程语言中,分配都是通过单一赋值完成的.

我真的很困惑他们为什么这么做.单一任务的目的究竟是什么?我们可以从中获得什么好处?

不可变性(你称之为单一作业)简化了很多事情,因为它从你的程序中取出了“时间”变量.

例如,在数学中,如果你说

x = y

您可以在任何地方替换x代表y.在操作编程语言中,您无法确保此等式成立:存在与每行代码关联的“时间”(状态).这个时间状态也为不受欢迎的side effects打开了大门,这是模块化和并发性的第一大敌.

有关更多信息,请参阅:http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-20.html#%_sec_3.1.1

相关文章
相关标签/搜索