In the previous post, we explained Elixir Strings. Let’s introduce Elixir First Class functions, Lambdas. This post is part of the functional language series, and it is based on the remarkable book Elixir In Action by Sasa Juric.
Lambda is the eleventh letter of the Greek alphabet (Λ, λ), transliterated as ‘l.’
In Elixir, Lambda is First Class Function, a function that is not bound to a global name. Instead, we assign a lambda to a variable, so we could call it using that variable.
In the picture above, we define Croatian
pdv lambda. Note how we call a lambda using
. notation. This is needed to distinguish from getting named functions.
Lambda function could be passed as an argument to another function. An example is
Enum.map` where lambda is called for each
enumbrable element. In our case
[1, 2, 3].
There is a shorter way to define a lambda using
& the operator. The number represents the lambda attribute position.
I do not recommend using this shorten notation, because it makes your code hard to read, even for your future self.
- lambda is created using
- the dot notation
- lambda as argument of another function
- shorten notation using