Sunday, March 30, 2014

For a person without a comp-sci background, what is a lambda in the world of Computer Science?
share|edit
add comment

16 Answers

up vote301down voteaccepted
Lambda comes from the Lambda Calculus and refers to anonymous functions in programming.
Why is this cool? It allows you to write quick throw away functions without naming them. It also provides a nice way to write closures. With that power you can do things like this.
Python
def adder(x):
    return lambda y: x + y
add5 = adder(5)
add5(1)
6
JavaScript
var adder = function (x) {
    return function (y) {
        return x + y;
    };
};
add5 = adder(5);
add5(1) == 6
Scheme
(define adder
    (lambda (x)
        (lambda (y)
           (+ x y))))
(define add5
    (adder 5))
(add5 1)
6
Func> adder = 
    (int x) => (int y) => x + y; // `int` declarations optional
Func add5 = adder(5);
var add6 = adder(6); // Using implicit typing
Debug.Assert(add5(1) == 6);
Debug.Assert(add6(-1) == 5);

// Closure example
int yEnclosed = 1;
Func addWithClosure = 
    (x) => x + yEnclosed;
Debug.Assert(addWithClosure(2) == 3);
As you can see from the snippet of Python and JavaScript, the function adder takes in an argument x, and returns an anonymous function, or lambda, that takes another argument y. That anonymous function allows you to create functions from functions. This is a simple example, but it should convey the power lambdas and closures have.
share|edit
22 
This is by by far the best yet simplest description of lambda I have ever seen. Yet you managed to not lose any of the key ideas bravo. +1 –  faceless1_14 Aug 10 '09 at 13:36
   
Agreed. I have seen the light! Thanks. =) –  Chris Cooper Apr 14 '10 at 23:53
   
+1 Best explanation I've seen. Thanks –  Rich Jul 20 '10 at 11:05
   
awesome, thanks much –  Orbit Oct 29 '10 at 13:38
3 
What a superb explanation!! I have the power now. –  trusktr Feb 15 '11 at 3:50
show 1 more comment

6 comments: