I think having Enum.filter(list, &Function.identity/1) actually reads 
pretty well. It avoids the issue with putting it in Kernel, and provides a 
very explicit name which speaks to Bruce's goal of naming concepts.

On Tuesday, July 30, 2019 at 12:47:08 PM UTC-4, Allen Madsen wrote:
>
> I don't have a strong opinion on this function's inclusion. It's not 
> mandatory that it live in Kernel though. It could exist on Function.
>
> Allen Madsen
> http://www.allenmadsen.com
>
>
> On Tue, Jul 30, 2019 at 12:29 PM Chris McCord <[email protected] 
> <javascript:>> wrote:
>
>> 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] <javascript:>> 
>> 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] 
>> <javascript:>> 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] 
>>> <javascript:>> 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
>>>>>
>>>>> 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
>>>>> 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: 1def 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.
>>>>>>>
>>>>>>>
>>>>>>> -- 
>>>>>>> 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
>>>>>>> .
>>>>>>> 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.
>>>>>>
>>>>>>
>>>>>>>
>>>>>> -- 
>>>>>> 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.
>>>>>>
>>>>>
>>>> -- 
>>>> 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/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.
>>>>
>>> -- 
>>>
>>> Andrea Leopardi
>>> [email protected] <javascript:>
>>>
>>> -- 
>>> 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/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.
>>>
>>
>>
>> -- 
>>
>> 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] <javascript:>
>> 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] <javascript:>.
>> 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] <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/elixir-lang-core/702CFF39-BCFF-416F-BF28-81A5E1516903%40chrismccord.com
>>  
>> <https://groups.google.com/d/msgid/elixir-lang-core/702CFF39-BCFF-416F-BF28-81A5E1516903%40chrismccord.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/586eb969-e70d-44cb-98df-47b8f6c188d0%40googlegroups.com.

Reply via email to