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 <christheke...@gmail.com> wrote: > Derp, I knew that. Good point. > > On Tue, Jul 2, 2019 at 9:55 AM Michał Muskała <mic...@muskala.eu> 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 <christheke...@gmail.com>, >> 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 elixir-lang-core+unsubscr...@googlegroups.com. >> 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 >> elixir-lang-core+unsubscr...@googlegroups.com. >> 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 elixir-lang-core+unsubscr...@googlegroups.com. > 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 elixir-lang-core+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4J1RBxnv%3DY_souiLJJcmMnNPtOCTBgOA8y0qBK7a5%2BO%3DQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.