7.2.68 lambda

(lambda (ARG1 …) EXPR1 … EXPRN)

Uma expressão lambda é como uma função. Para “chamar” uma expressão lambda, a expressão lambda tem de ser chamada como uma função: ((lambda (arg) (+ 1 arg)) 2). Nesse exemplo, o valor completo da expressão deve ser 3. Em geral, o valor da chamada irá ser o valor de EXPRN. A primeira lista serve para definir os parâmetros formais. A expressão lambda propriamente dita é apenas uma lista, iniciando-se com a palavra chava lambda, seguida por muitas listas entre aspas duplas. See (defun …). See (setq …). See (let …). Note que a lista argumento pode conter as palavras chaves especiais

&optional

fornecimento de valores aos identificadores seguintes é opcional, seus valores padrão irão ser nil

&rest

todos os argumentos excedentes irão ser coletados em uma lista, e essa lista irá ser atribuída ao argumento seginte, da seguinte forma:

((lambda (&rest rest) (echo rest)) a b c d)

A saída irá ser (a b c d).