You know Norbert I hadn't even considered the issue of the division
operator. That's a great point. This is why I'm not a language author!
oc
On Tuesday, September 13, 2016 at 12:31:50 PM UTC-4, Norbert Melzer wrote:
>
> 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 <[email protected] <javascript:>> 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 <[email protected]
>> <javascript:>> 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 [email protected] <javascript:>.
>>> 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 [email protected] <javascript:>.
>> 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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/elixir-lang-core/107b8cba-f6f8-4c7d-8f1b-0df92a0a40ee%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.