Jump to content

Anonymous function

From Simple English Wikipedia, the free encyclopedia

In computer science and mathematics, an anonymous function is a function that has no name. Usually, a function is written like: . It can be written anonymously as These are used in functional programming languages and other programming languages with support for anonymous functions (those which support 1st class functions).

Examples in some programming languages

Python

(lambda x: (lambda y: x * y))

The above code can be executed as a function:

>>>(lambda x: (lambda y: x * y))(3)(4)
12

Haskell

\x -> \y -> x * y

The above code can be executed as a function:

(\x -> \y -> x * y) 3 4

The function can also be written in point-free (tacit) style:

(*)

Standard ML

Not curried:

fn (x, y) => x * y

(* or *)

(op * )

Curried:

fn x => fn y => x * y

JavaScript

// uncurried
function(x, y)
{
    return x * y;
}

// curried
function(x)
{
    return (function(y)
    {
        return x * y;
    });
}

Scheme

;; uncurried
(lambda (x y) (* x y))
*
;; usage:
((lambda (x y) (* x y)) 3 4)
(* 3 4)

;; curried:
(lambda (x) (lambda (y) (* x y)))

;; usage:
(((lambda (x) (lambda (y) (* x y))) 3) 4)

C++ 11

Not curried:

[](int x, int y)->int
{
	return x * y;
};

Curried:

[](int x)
{
	return [=](int y)->int
	{
		return x * y;
	};
};

C++ Boost

_1 * _2

Note: What you need to write boost lambda is to include <boost/lambda/lambda.hpp> header file, and using using namespace boost::lambda, i.e.

#include <boost/lambda/lambda.hpp>
using namespace boost::lambda;

You can call it as: (_1 * _2)(3, 4) to get 12.

Other websites