New EEP draft: Pinning operator ^ in patterns

wojteksurowka@REDACTED wojteksurowka@REDACTED
Fri Jan 15 16:34:46 CET 2021

> I see that's a tweet from Joe, but Erlang does not have unification.

> All Erlang terms are ground, making unification pointless. The only thing Erlang
> does that even remotely resembles unification is the rule (mistake IMO) that
> a variable in a pattern performs a structural equality check if that variable
> already is bound, otherwise binds it if it isn't already bound. That's a compile-time decision.

> The pinning operator proposal is an attempt to reduce the ambiguity of variables in patterns.

One of many things I love in Erlang is its simplicity. Another one is its practicality or pragmatism. 
I love that the focus of Erlang is on subjects like: "how to implement a server which reliably 
reacts to requests and handles timeouts". And not on subjects like: "how to reduce ambiguity
of variables in patterns". Many posters here already argued that in real life the problem is of
small importance and is rather a symptom of otherwise bad - too long, too complicated,
or both - code.

A language change implemented in a recent release was addition of stack trace in exceptions. I see this
change as very pragmatic and very opposite in spirit to pinning operator proposal. It is optional and has
no impact on existing code. It solves a real problem and since its introduction I used it several times
not because I had to, but because it is very useful.

I am just an Erlang user and I was never involved in anything related to the development of Erlang,
but I hope that people who make decisions about its future will keep its simplicity intact.


More information about the erlang-questions mailing list