我正在努力掌握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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。