7.2.31 defun

(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 …).