Of what use is 'lambda'???

joswig at corporate-world.lisp.de joswig at corporate-world.lisp.de
Mon Sep 25 02:03:48 CEST 2000


In article <39CE4DB7.64BEFC1D at alcyone.com>,
  Erik Max Francis <max at alcyone.com> wrote:
> This is probably the main application of lambdas; it's a case where you
> need a throwaway function to use as glue but it doesn't need a symbol
> and you probably won't use it again.

One other applications of LAMBDA is that you can return them
from functions and create closures:

? (defun make-one-arg-function (function)
    (lambda (arg)
      (funcall function arg arg)))
MAKE-ONE-ARG-FUNCTION

? (mapcar (make-one-arg-function #'*)
          '(1 2 3 4))
(1 4 9 16)

? (setf (symbol-function 'square)
        (make-one-arg-function #'*))
#<COMPILED-LEXICAL-CLOSURE #x889D226>

? (square 3)
9

? (mapcar #'square
          '(1 2 3 4))
(1 4 9 16)

? (setf (symbol-function 'double)
        (make-one-arg-function #'+))
#<COMPILED-LEXICAL-CLOSURE #x889DD2E>

? (double 3)
6

? (mapcar #'double '(1 2 3 4 5))
(2 4 6 8 10)




Sent via Deja.com http://www.deja.com/
Before you buy.



More information about the Python-list mailing list