I am -1 (almost - 2) on more syntactic sugar. I don't think the current
syntax is difficult or confusing so I don't believe adding sugar over it is
really gaining anything.

oc

On Thu, Sep 15, 2016, 1:32 PM Ben Wilson <benwilson...@gmail.com> wrote:

> Here's the thing. Right now import doesn't require any special syntax.
> It's data driven, and uses elixir structures that already exist and are
> usable.
>
> Every single option you listed requires changes to the parser, new
> language constructs or both. All to do exactly what we can right now. I
> don't see the value.
>
> On Thursday, September 15, 2016 at 10:11:09 AM UTC-4, Louis Pilfold wrote:
>
>> Hello!
>>
>> What is the advantage of the new syntax? To me it seems it only serves to
>> obscure what is actually happening.
>> I don't think adding multiple ways to write the same thing will bring
>> anything other than inconsistency to the language, causing style squabbles
>> and giving newcomers one more irregularity memorise.
>>
>> Side note: if this macro has a special syntax, does this mean I can also
>> use this syntax for my own macros?
>>
>> Cheers,
>> Louis
>>
> On 15 Sep 2016 10:39, "Jaap Frolich" <jfro...@gmail.com> wrote:
>>
> Hi,
>>>
>>> @Jose: I would suggest this to be syntactic sugar to import functions
>>> from modules, that is converted behind the scenes to a call to import,
>>> only: [...].
>>> This will add complexity to the language, by creating a new way of
>>> importing, but in 99% you can use the new syntax, and only use the 'low
>>> level' syntax in macros or special use cases such as when you need
>>> 'except'. Another upside is that all the old code keeps working, but we
>>> have a nicer syntax for new code.
>>> I think it can incentivize people to only import the necessary functions
>>> and not import all if there is a nicer syntax to it.
>>>
>>> @Onorio: While an improvement, I like the proposed syntax more, because
>>> in my opinion import a single/a few functions should be the default, and
>>> not a special case (with using only).
>>>
>>> @Norbert: I am not really in favor of the `import &function_one/1,
>>> &function_2/1 from Module` syntax as I think it is less pretty and while it
>>> might be easier to implement, semantically it does not really makes sense
>>> to me / is intuitive.
>>>
>>> Thanks for thinking about this :) Love the language.
>>>
>>> Cheers,
>>>
>>> Jaap
>>>
>>>
>>>
>>> On Tuesday, September 13, 2016 at 2:54:20 PM UTC+8, José Valim wrote:
>>>>
>>>> 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 <jfro...@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-co...@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-co...@googlegroups.com.
>>>
>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/elixir-lang-core/6c1b1e6e-822b-4540-be41-fa65322ed78b%40googlegroups.com
>>> <https://groups.google.com/d/msgid/elixir-lang-core/6c1b1e6e-822b-4540-be41-fa65322ed78b%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 a topic in the
> Google Groups "elixir-lang-core" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/elixir-lang-core/s5G9CWE8REA/unsubscribe
> .
> To unsubscribe from this group and all its topics, 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/dcf7a18a-42e5-4757-af61-9c3f4e8b4bee%40googlegroups.com
> <https://groups.google.com/d/msgid/elixir-lang-core/dcf7a18a-42e5-4757-af61-9c3f4e8b4bee%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/CAP%3DvNq8uPmtGiEgLNRma2V%3D1OnJjGNdY2uzfAof%3DYWUKk0f4-g%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to