Copyright (C) 2000-2012 |
GNU Info (elisp)Simple LambdaA Simple Lambda-Expression Example ---------------------------------- Consider for example the following function: (lambda (a b c) (+ a b c)) We can call this function by writing it as the CAR of an expression, like this: ((lambda (a b c) (+ a b c)) 1 2 3) This call evaluates the body of the lambda expression with the variable `a' bound to 1, `b' bound to 2, and `c' bound to 3. Evaluation of the body adds these three numbers, producing the result 6; therefore, this call to the function returns the value 6. Note that the arguments can be the results of other function calls, as in this example: ((lambda (a b c) (+ a b c)) 1 (* 2 3) (- 5 4)) This evaluates the arguments `1', `(* 2 3)', and `(- 5 4)' from left to right. Then it applies the lambda expression to the argument values 1, 6 and 1 to produce the value 8. It is not often useful to write a lambda expression as the CAR of a form in this way. You can get the same result, of making local variables and giving them values, using the special form `let' (Note: Local Variables). And `let' is clearer and easier to use. In practice, lambda expressions are either stored as the function definitions of symbols, to produce named functions, or passed as arguments to other functions (Note: Anonymous Functions). However, calls to explicit lambda expressions were very useful in the old days of Lisp, before the special form `let' was invented. At that time, they were the only way to bind and initialize local variables. automatically generated by info2www version 1.2.2.9 |