5 ms·
From programming erlang by Joe Armstrong: At this point you might be wondering how it’s possible to program with- out variables. How can you express something
by KevinMS 17y ago
From programming erlang by Joe Armstrong:
At this point you might be wondering how it’s possible to program with- out variables. How can you express something like X = X + 1 in Erlang? The answer is easy. Invent a new variable whose name hasn’t been used before (say X1), and write X1 = X + 1.
X=#todo{}.
X1 = #todo{status=urgent, text="Fix errata in book"}.
X2 = X1#todo{status=done}.
From Armstrongs thesis
X = 5; X1 = X + 10;
I found those just by searching on "X1". There are more X1 examples in the erlang otp sources. Who knows what else is in there.
- iamaleksey 17y agoI'm not saying this never happens. It does, but you'll rarely see this pattern in any real Erlang code base. And when you see it, it will not be "littered". It's an exception, not an idiom. And those samples from Joe's book and thesis are just snippets with no context. BTW, O'Reilly's "Erlang Programming" doesn't even provide such an example. Edit: One example when I do use this pattern is constructing proplists for some function calls.
- silentbicycle 17y agoErlang's style was very strongly influenced by Prolog, and in Prolog code, it's quite common to see e.g. "X1 = X + 1", but having X2, X3, etc. as well is rare - there's usually not a succession of modified versions of a variable in the same function (clause), because it's a sign that you could break things up better. The same is true in Erlang - code with several such variables is written with a strong Java accent (or whatever), not in idiomatic Erlang.