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.