diff --git a/lib/elixir/lib/kernel.ex b/lib/elixir/lib/kernel.ex index 7a559919b7..71a72dece5 100644 --- a/lib/elixir/lib/kernel.ex +++ b/lib/elixir/lib/kernel.ex @@ -482,6 +482,26 @@ defmodule Kernel do :erlang.floor(number) end + @doc """ + Returns its argument. + + ## Examples + + iex> identity(17) + 17 + + iex> identity(:ok) + :ok + + iex> 'abcdaabccc' |> Enum.sort |> Enum.chunk_by(&identity/1) + ['aaa', 'bb', 'cccc', 'd'] + + """ + @spec identity(a) :: a when a: var + def identity(a) do + a + end + @doc """ Returns the head of a list. Raises `ArgumentError` if the list is empty.