I do not like the new python-like syntax for import, but to be honest, I do
like to specify functions in `name/arity` instead of `{name, arity}`.

Perhaps we can either build upon the division operator in the AST or we use
the capture syntax as in `import Enum, &map/2`. This should be just an
addition to the "old" tuple notation and is getting converted into it.



José Valim <jose.va...@plataformatec.com.br> schrieb am Di., 13. Sep. 2016
um 08:54 Uhr:

> Thank you Jaap!
>
> The benefit of today's syntax is that the arguments are data, which makes
> them easy to control and manipulate. Imagine you want to dynamically import
> some data, how do you dynamically build a list or a tuple of {defrecord/2,
> extract/2} entries?
>
> The data syntax is also what you get back from all of the introspection
> functions in Elixir, such as String.__info__(:functions). Also, today's
> syntax support `:except` and other options, which are not considered in the
> new syntax.
>
> I would like to see those points considered before further considering a
> new syntax.
>
>
>
> *José Valim*
> www.plataformatec.com.br
> Skype: jv.ptec
> Founder and Director of R&D
>
> On Tue, Sep 13, 2016 at 6:30 AM, Jaap Frolich <jfrol...@gmail.com> wrote:
>
>> Hi,
>>
>> Currently when we import a single or a few functions from a module this
>> is the syntax to do it:
>>
>>   import Record, only: [defrecord: 2, extract: 2]
>>
>> As this is something that is something quite common to do in a module,
>> the syntax can be more user-friendly in my opinion.
>>
>>    1. The notation for a function is captured in data, while normally we
>>    describe functions with the function/arity notation
>>    2. By default it imports *everything*, as this is often not what you
>>    want, it might be better to make it more explicit
>>    3. Aesthetics, but that might be personal, I think it does not read
>>    as nice
>>
>> So how about having something like below syntax in the language:
>>
>>   import defrecord/2, extract/2 from Record
>>
>>   import * from Record
>>
>> This might be hard to implement, other candidates could be:
>>
>>   import {defrecord/2, extract/2}, from: Record
>>
>>   import {*}, from: Record
>>
>> As it might be easier to implement in the language using macros.
>>
>> (while we keep the existing import macro around.)
>>
>> Let me know what you think!
>>
>> Cheers,
>>
>> Jaap
>>
>> --
>> 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 elixir-lang-core+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/elixir-lang-core/4e514d59-05bd-41c6-a1d5-a634b34ff350%40googlegroups.com
>> <https://groups.google.com/d/msgid/elixir-lang-core/4e514d59-05bd-41c6-a1d5-a634b34ff350%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> 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 elixir-lang-core+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4KLGhV34Xu_Ry8g1_VZPKtrju%3DQPiiZ5y7Ss8U8nAtpUw%40mail.gmail.com
> <https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4KLGhV34Xu_Ry8g1_VZPKtrju%3DQPiiZ5y7Ss8U8nAtpUw%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
> 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 elixir-lang-core+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/CA%2BbCVsu2tZmw3FQPd3rtJES9a1ueCdddtkJ_bS7O1FOCcJF4Zw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to