New EEP draft: Pinning operator ^ in patterns
Raimo Niskanen
raimo+erlang-questions@REDACTED
Fri Jan 15 16:14:23 CET 2021
On Fri, Jan 15, 2021 at 03:52:27PM +0100, Nicolas Martyanoff wrote:
> On 2021-01-15 15:40, Raimo Niskanen wrote:
> > Correct me if I am wrong, but Erlang does not have unification. Instead it
> > has got matching vs. binding, which are two different operations, as opposed
> > to unification where both sides of the unification are equivalent.
>
> There are multiple types of unification; I won't try to define it precisely
> since I have not work with the formal aspect of the concept for a lot of time,
> but it seems to me Erlang does implement one of the types.
>
> And I'm not the only one to believe so ;)
> https://twitter.com/joeerl/status/969579433769295873
Joe wrote: "one way unification (from Prolog)"
I read this as either "[one way unification] (from prolog)" or
"one way [unification (from prolog)]" and think it is the latter.
StackOverflow has a thread about Pattern Matching vs. Unification:
https://stackoverflow.com/questions/4442314/differences-between-pattern-matching-and-unification
Would you agree that Erlang's "unification" is asymmetrical since the first
occurence of a variable always succeeds for a new variable (binding), and
that all following occurences must have the same value (matching) or else
there is a badmatch runtime exception?
>
> --
> Nicolas Martyanoff
> http://snowsyn.net
> khaelin@REDACTED
--
/ Raimo Niskanen, Erlang/OTP, Ericsson AB
More information about the erlang-questions
mailing list