That's already a thing in Erlang and AFAIK that never caused issues for anyone.
X = 2. F = fun (<<_:X/binary>>, X) -> oh end. F(<<0, 0>>, 3). > Le 25 déc. 2020 à 23:41, Richard O'Keefe <[email protected]> a écrit : > > "This fills a much-needed gap." > > Erlang functions are as a rule small enough that you > shouldn't ever shadow a variable. One of the worst > features of Erlang is that you can write > foo(X) -> fun (X) -> fun (X) -> 1 end end. > and have three different variables all called X, and > one of the good things about erlc is that it tells you. > foo.erl:3: Warning: variable 'X' is unused > foo.erl:3: Warning: variable 'X' is unused > foo.erl:3: Warning: variable 'X' shadowed in 'fun' > foo.erl:3: Warning: variable 'X' shadowed in 'fun' > > The very last thing we want is a notation that lets > us have two different variables with the same name > in a single pattern. > > > On Fri, 25 Dec 2020 at 09:10, Richard Carlsson <[email protected]> > wrote: > The ^ operator allows you to annotate already-bound pattern variables as ^X, > like in Elixir. This is less error prone when code is being refactored and > moved around so that variables previously new in a pattern may become bound, > or vice versa, and makes it easier for the reader to see the intent of the > code. > > See also https://github.com/erlang/otp/pull/2951 > > Ho ho ho, > > /Richard & the good folks at WhatsApp _______________________________________________ eeps mailing list [email protected] http://erlang.org/mailman/listinfo/eeps
