I’m just catching up on this thread now, but I’m in the “not valuable enough to 
be added” camp. I’ve personally never needed such an abstraction – on my own or 
while teaching. Also, an anon function serves the purpose when needed without 
introducing a new concept. From the beginner perspective, I think `identify` 
adds more noise where it isn’t needed. Even following this thread and reading 
other lang usage, I still find the name awkward and struggle to see it being a 
net benefit to my code vs what I’d happily write today. Given how trivial it is 
to return the value yourself in a concise and clear way, I don’t think the 
value of it squatting in kernel is enough to justify an addition to the std 
lib. 

> On Jul 21, 2019, at 8:47 AM, Bruce Tate <[email protected]> wrote:
> 
> I want to speak to the beginners argument.  I am not guessing. I spend 6-8 
> hours teaching and mentoring every week, and it's more when school is in. 
> Concepts are easier to teach when those concepts have names and big concepts 
> can be broken down into smaller ones. The students I teach are about 80% new 
> to FP and about 40% new to programming in general. 
> 
> I will take the advice of mixing in FP.identity if it cuts against the grain 
> of what Elixir is about. 
> 
> Thanks to all for making Elixir the best it can be... let's keep it civil. I 
> think it makes a lot of sense to take José's suggestion and collect some of 
> these concepts into a library and prove their worth there, to language 
> learners and otherwise. 
> 
> -bt
> 
> On Mon, Jul 15, 2019 at 5:12 AM Andrea Leopardi <[email protected] 
> <mailto:[email protected]>> wrote:
> My 2 cents. To me a strong argument against this is that &identity/1 still 
> looks confusing to newcomers with the capture syntax (how many "why can't I 
> just write identity like in Js questions do we get after all), so summed with 
> the other arguments against it makes me not want to add this to the language 
> personally.
> 
> On Mon, 15 Jul 2019 at 09:30, Masoud Ghorbani <[email protected] 
> <mailto:[email protected]>> wrote:
> Isn't possible to have something like JavaScript arguments which correspond 
> with a list of parameters passed to function? 
> its more handy to lookup a parameter in a list or map until working with a 
> function to get a given parameter.
> 
> On Tuesday, July 2, 2019 at 11:10:45 PM UTC+4:30, José Valim wrote:
> Thanks Chris, it is important that someone being counter arguments, even if 
> they can be disproved. :)
> 
> I definitely see how such a small function can be useful but, at the same 
> time, I am not convinced about the name "identity".
> 
> I found it curious that Clojure actually have an identity function because 
> the definition of Identity they use when talking about values and change is a 
> more complex one (and one that really stuck with me):
> 
> > By identity I mean a stable logical entity associated with a series of 
> > different values over time
> 
> https://clojure.org/about/state#_working_models_and_identity 
> <https://clojure.org/about/state#_working_models_and_identity>
> 
> Of course, my interpretation above is likely uncommon and there are other 
> interpretations of identity that would fit nicely.
> 
> Anyway, to move the discussion forward, can someone do a more complete survey 
> on what this function are called in many of the other languages? I just want 
> to make sure we do our due diligence before adding it to the language.
> 
> Thank you,
> 
> José Valim
> www.plataformatec.com.br <http://www.plataformatec.com.br/>
> Skype: jv.ptec
> Founder and Director of R&D
> 
> 
> On Tue, Jul 2, 2019 at 8:25 PM Christopher Keele <[email protected] <>> 
> wrote:
> Derp, I knew that. Good point.
> 
> On Tue, Jul 2, 2019 at 9:55 AM Michał Muskała <[email protected] <>> wrote:
> Because Elixir is a lisp-2 language, variables and functions are in different 
> "namespaces". This means you can have local variables with names of local 
> functions without any issues, but it also means you need different syntax 
> when you want to call a function contained in a variable. Or formulated 
> differently - variables can't shadow functions. For example, consider:
> bar = &foo/0
> bar.() #=> 1
> bar() #=> 2
> 
> def foo(), do: 1
> def bar(), do: 2
> Having a Kernel.id/1 function would not preclude you from using variables 
> called id.
> 
> Michał.
> On 2 Jul 2019, 18:41 +0200, Christopher Keele <[email protected] <>>, wrote:
>> I'd cast my vote against this. The proposal seems to be:
>> 
>> 1. Create a function named 'id' or some such
>> 2. Put it in the Kernel namespace (so it need not be prefixed)
>> 
>> I've been doing a lot of python lately and they have a lot of things like 
>> this, including the same 'filter' global function mentioned in this thread.
>> 
>> Points against:
>> 
>> 1. It'd suck to not be able to use 'id' as a variable name, and would 
>> conflict with a lot of existing code.
>> 2. Alternative names to 'id' or namespacing it are not shorter than '&(&1)'
>> 3. '&(&1)' is more open to change with requirements
>> 4. Adopting 'id' within Kernel would encourage adding more utility functions 
>> to it, exacerbating 1, like the proposed 'filter' function
>> 5. Not adopting it within the Kernel would be hard, as there's no real 
>> appropriate place for it elsewhere in standard lib, unlike Enum's 'filter'
>> 
>> Generally it's a nice idea, but I can't think of a great way to make it 
>> work, and it'd open the floodgates to more utility functions that I've come 
>> to find grating in day-to-day python development.
>> 
>> Just my two cents,
>> Chris K
>> 
>> --
>> 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/fffd5b76-4385-40de-93bd-148f1b94bb27%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/elixir-lang-core/fffd5b76-4385-40de-93bd-148f1b94bb27%40googlegroups.com?utm_medium=email&utm_source=footer>.
>> For more options, visit https://groups.google.com/d/optout 
>> <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/tB61BHYIH1s/unsubscribe 
> <https://groups.google.com/d/topic/elixir-lang-core/tB61BHYIH1s/unsubscribe>.
> To unsubscribe from this group and all its topics, send an email to 
> [email protected] <>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/elixir-lang-core/b2149582-b8ba-4759-99ac-a634f73f3243%40Spark
>  
> <https://groups.google.com/d/msgid/elixir-lang-core/b2149582-b8ba-4759-99ac-a634f73f3243%40Spark?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout 
> <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/CAD9kT2R41gmZXU9_YAqAdyJQDP-M37j-mgUet-okoeBzF%3DdMDA%40mail.gmail.com
>  
> <https://groups.google.com/d/msgid/elixir-lang-core/CAD9kT2R41gmZXU9_YAqAdyJQDP-M37j-mgUet-okoeBzF%3DdMDA%40mail.gmail.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout 
> <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] 
> <mailto:[email protected]>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/elixir-lang-core/2bb429a8-e583-48c1-a335-8660c115b24f%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/elixir-lang-core/2bb429a8-e583-48c1-a335-8660c115b24f%40googlegroups.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.
> -- 
> 
> Andrea Leopardi
> [email protected] <mailto:[email protected]>
> 
> -- 
> 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] 
> <mailto:[email protected]>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/elixir-lang-core/CAM9Rf%2BJEN7vuwxxZFkrB8NytCCaSPAKtroMeA1sqe91n5SoFXg%40mail.gmail.com
>  
> <https://groups.google.com/d/msgid/elixir-lang-core/CAM9Rf%2BJEN7vuwxxZFkrB8NytCCaSPAKtroMeA1sqe91n5SoFXg%40mail.gmail.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.
> 
> 
> -- 
> 
> Regards,
> Bruce Tate
> CEO
> 
>  
> <https://bowtie.mailbutler.io/tracking/hit/f8218219-d2a8-4de4-9fef-1cdde6e723f6/c7c97460-016e-45fb-a4ab-0a70318c7b97>
> 
> Groxio, LLC.
> 512.799.9366
> [email protected] <mailto:[email protected]>
> grox.io <http://grox.io/>
> 
> -- 
> 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] 
> <mailto:[email protected]>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/elixir-lang-core/CAFXvW-65ztTOMoVhZ407PghmYA0OBcuVhDatcjYx6Xw7f52pMQ%40mail.gmail.com
>  
> <https://groups.google.com/d/msgid/elixir-lang-core/CAFXvW-65ztTOMoVhZ407PghmYA0OBcuVhDatcjYx6Xw7f52pMQ%40mail.gmail.com?utm_medium=email&utm_source=footer>.

-- 
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/702CFF39-BCFF-416F-BF28-81A5E1516903%40chrismccord.com.

Reply via email to