Erlang has single-assignment variables
“Erlang has single-assignment variables. As the name suggests, they can be given a value only once. If you try to change the value of a variable once it has been set, you’ll get an error.”
(“Single-assignment variables” are the same as val
fields in Scala. Using them can make your code more like algebra.)
Joe Armstrong, in his book,
Programming Erlang: Software for a Concurrent World
(Scala comment added by me)