2.2.4.2. Expresiones LAMBDA

La independencia de ambos procesos, la construcción de lafunción y el asignarle un nombre se comprende claramente si analizamosla función LAMBDA.

(lambda argumentos expr ...)

Mediante ella, podemos referirnos a una función literalmente de lamisma manera que lo haríamos con un número o una cadena de texto.Un número se representa a sí mismo. Una cadena se representamediante una serie de caracteres rodeados de comillas dobles. Para representaruna función se utilizan expresiones-lambda.
Una expresión-lambda es una lista de tres componentes:

  1. El símbolo lambda
  2. Una lista de parámetros
  3. Una serie de expresiones que se evalúan al ejecutar lafunción.

Una función equivalente a doble es la referida por la siguente expresión-lambda:

_$ (lambda (x)(* x 2))
#<USUBR @0344f0dc -lambda->

La forma especial setq puede servir a su vez para asignar estafunción a un símbolo:

_$ (setq doble (lambda (x)(* x 2)))
#<USUBR @0344f104 -lambda->
_$ (doble 4)
8

que podemos ejecutar perfectamente como función de usuario.
LAMBDA suele usarse conjuntamente con APPLY y/o MAPCAR para ejecutar una función sobre una lista.