(defun NOME (ARG1 …) [DOCSTRING] EXPR1 …)Define uma chamada expressão lambda, isto é: define NOME para avaliar
para a expressão lambda (lambda (ARG1 …) (EXPR1 …))
quando chamada como uma função. Também, instala DOCSTRING como resposta para
os comandos (help NOME) e (morehelp NOME). Note que
DOCSTRING não precisa conter a sinopse do comando, essa sinopse é gerada
automaticamente. EXPR1 não pode ser uma sequência de caracteres se DOCSTRING for
omitida; EXPR1 deve ser interpretada como a sequência de caracteres documento. O valor de retorno da
(defun …) é o nome da função. Funções podem ser recursivas
e podem modificar a si mesmas. é posível redefinir funções internas, nesse
caso a definição antiga está ainda disponível so o nome
-builtin-OLDNAME-. Valores de argumento podem ser alterados por setq;
a nova associação é descartada após avaliação de surroundingdefun-body. As palavras especiais &optional e
&rest possuem o mesmo significado que a expressão lambda anonymous,
veja nas referência adiante. See (lambda …). See (setq …). See (let …).