It looks like this was already discussed here:
https://github.com/elixir-lang/elixir/issues/3268
https://github.com/elixir-lang/elixir/pull/3517

I prefer bare words for the same reason as Amos. It facilitates
refactoring between methods and variables.

If this stays, is it expected to be a compiler error in Elixir 2.0? If
so, does that mean that we would be able to call anonymous functions
without the dot?

x = fn y -> y + 1 end
x(1)
# vs
x.(1)
Allen Madsen
http://www.allenmadsen.com


On Sat, Dec 3, 2016 at 9:07 AM, Amos King <[email protected]> wrote:
> In my experience the minimize scope of data binding keeps it pretty 
> straightforward.
>
> Amos King
> Binary Noggin
>
>> On Dec 3, 2016, at 07:50, Michał Muskała <[email protected]> wrote:
>>
>> The ambiguity, that bit me already several times is in the code that looks 
>> like this:
>>
>>    self = self()
>>    do_something(self)
>>
>> Now the self in the second line can be both - calling the function and 
>> accessing variable. Of course it's not confusing in this example because of 
>> it's brevity, but in general it can lead to issues that are very hard to 
>> debug.
>>
>> Michał.
>>
>>> On 3 Dec 2016, at 14:10, Amos King <[email protected]> wrote:
>>>
>>> I prefer being able to use the bare words. It makes refactoring simpler to 
>>> move between a variable and a method which I do regularly.  The warning 
>>> seems strange since there isn't an ambiguity that is being decided. I'm on 
>>> board with Dave here.
>>>
>>> Amos King
>>> Binary Noggin
>>>
>>>> On Dec 3, 2016, at 00:45, Louis Pilfold <[email protected]> wrote:
>>>>
>>>> I personally think this is clearer, and I don't feel this is clearer. With 
>>>> this I think it is easier to tell when computation is happening- 
>>>> previously it could be hidden behind what looks like variables.
>>>> Cheers,
>>>> Louis
>>>>
>>>> On Sat, 3 Dec 2016, 04:42 Dave Thomas, <[email protected]> wrote:
>>>> I’ve been loving 1.4 for a few weeks now, but I am bugged by the new 
>>>> warning:
>>>>
>>>> warning: variable "int" does not exist and is being expanded to "int()", 
>>>> please use parentheses to
>>>>   remove the ambiguity or change the variable name
>>>>
>>>> Partly it is because it makes my code a lot uglier. For example, in 
>>>> quixir, instead of
>>>>
>>>> test "two plain types" do
>>>>  ptest a: int, b: list do
>>>>    assert is_integer(a)
>>>>    assert is_list(b)
>>>>  end
>>>> end
>>>>
>>>> I now have to write:
>>>>
>>>> test "two plain types" do
>>>>
>>>>  ptest
>>>> a: int(), b: list() do
>>>>
>>>>   . . .
>>>>
>>>> Ugh. Even worse, the premise of the warning seems wrong. It assumes int is 
>>>> a variable, which doesn’t exist. But it does know that int is a function, 
>>>> because if I misspell it and put ()s on, I get a compilation error. So why 
>>>> can’t it just do that: is a bare name is encountered that isn’t a 
>>>> variable, just internally tack on the ()s are see what happens. Which I 
>>>> think is the old way.
>>>>
>>>> Basically, what compelling problem drove this change? It isn’t an issue I 
>>>> ever had before, and the change seems to make my code worse.
>>>>
>>>> Dave
>>>>
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google Groups 
>>>> "elixir-lang-core" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>>> email to [email protected].
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/elixir-lang-core/22ad983c-0917-4425-abbe-a6e954ae3b61%40googlegroups.com.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google Groups 
>>>> "elixir-lang-core" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>>> email to [email protected].
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/elixir-lang-core/CAM-pwt7JgYzWnC6y1-ELHj%2BOeaJDuDCamAxJmktdeYRdLaYFEA%40mail.gmail.com.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups 
>>> "elixir-lang-core" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>> email to [email protected].
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/elixir-lang-core/1865E0E4-7879-4307-900B-99CEF366091D%40binarynoggin.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>
>> --
>> You received this message because you are subscribed to the Google Groups 
>> "elixir-lang-core" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/elixir-lang-core/1D0E5277-451A-4955-A3FC-D06F05E107E4%40muskala.eu.
>> For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "elixir-lang-core" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/elixir-lang-core/15857D16-3830-4916-B233-2CD929719BDF%40binarynoggin.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/CAK-y3Csyb3ox0pGKCBuTEzK67%2BTcZGwJzx5VphWr9_4pNhwi8g%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to