Like Haskell's `id` or Clojure's `identity` or Ruby's `itself`
It can be very useful sometimes. Instead of writing ugly `&(&1)` it would
much more attractive to write `&identity/1` or `&id\1`
Moreover this function is already used as a default argument for some
higher-order function. For example `Enum.group_by(enumerable, key_fun,
value_fun \\ fn x -> x end)`
Here are some examples
```
#=> [1, 2, 3, true, 1234]
'abcdaabccc' |> Enum.sort |> Enum.chunk_by(&identity/1)
#=> ['aaa', 'bb', 'cccc', 'd']
[1, 1, 2, 3, 3, 1, 1, 5, 5] |> Enum.chunk_by(&identity/1) |> Enum.map(&hd/1)
#=> [1, 2, 3, 1, 5]
Enum.group_by('abracadabra', &identity/1)
#=> %{97 => 'aaaaa', 98 => 'bb', 99 => 'c', 100 => 'd', 114 => 'rr'}
Enum.map([1, 2, 3, 4], &identity/1)
#=> [1, 2, 3, 4]
[1,2,3,nil, true, false, 1234] |> Enum.filter(&identity/1)
```
--
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/7d4fa495-d79b-433e-ace5-483becf4bd93%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.