Re: New EEP draft: Pinning operator ^ in patterns

Michael Truog <[email protected]>
Newsgroups gmane.comp.lang.erlang.general
Message-ID <[email protected]>
On 12/27/20 3:39 PM, Richard O'Keefe wrote:
>
> One thing I *would* like is an analogue of -Werror.
We have the option warnings_as_errors, so we have that now (added in 
R13B04).

Best Regards,
Michael


>
>
> On Sun, 27 Dec 2020 at 02:16, Anthony Ramine <[email protected] 
> <mailto:[email protected]>> wrote:
>
>     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]
>     <mailto:[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] <mailto:[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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.