Sometimes we need a function to pass it somewhere to a higher-order function only. As you may know, inventing names is one of the main issues programmers face. But if we need a function here and now, and you do not have to call it anywhere else, then you do not need to name it.
These one-time functions make it possible to describe almost all languages that can work as they do with values. In Python, defining this type of function looks like this:
lambda x: x + 1
# <function <lambda> at 0x7f56e5798a60>
We created a function but did not name it, so REPL displayed it as function <lambda>
.
The keyword lambda
is named after lambda abstractions. It is the essential building block of Lambda Calculus, a mathematical apparatus often used in programming language development. In Lambda Calculus, all functions are anonymous, so anonymous functions in many languages are also sometimes called lambdas or lambda functions.
Let us take a look at an example that uses an anonymous function:
l = [1, 2, 5, 3, 4]
l.sort(key=lambda x: -x)
l