The Purpose of Single Assignment

前端 未结 3 1830
误落风尘
误落风尘 2021-01-02 12:21

I\'m currently trying to master Erlang. It\'s the first functional programming language that I look into and I noticed that in Erlang, each assignments that you do is a sing

3条回答
  •  时光说笑
    2021-01-02 13:12

    Immutability (what you call single assignment), simplifies a lot of things because it takes out the "time" variable from your programs.

    For example, in mathematics if you say

      x = y
    

    You can replace x for y, everywhere. In operational programming languages you can't ensure that this equality holds: there is a "time" (state) associated with each line of code. This time state also leaves the door open to undesired side effects which is the enemy number one of modularity and concurrency.

    For more information see this: https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-20.html#%_sec_3.1

提交回复
热议问题