From 6c1894de6b98774e015ae7956d130f2e30a651f7 Mon Sep 17 00:00:00 2001 From: Alexey Nikitin Date: Fri, 12 Jul 2019 20:11:53 +0300 Subject: [PATCH] Adds &Kernel.identity/1 (#9182) --- lib/elixir/lib/kernel.ex | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) 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.