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]> 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].
> To view this discussion on the web visit https://groups.google.com/d/ms
> gid/elixir-lang-core/4e514d59-05bd-41c6-a1d5-a634b34ff350%40
> googlegroups.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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4KLGhV34Xu_Ry8g1_VZPKtrju%3DQPiiZ5y7Ss8U8nAtpUw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to