Special Form: defun symbol parameter-list forms*
defun は、新しく lisp 関数を定義する場合の(通常の)方法です。 defun は、 symbol をこのフォームの残りの部分が示す関数の名前として定義します。 (これ は)このシンボルの関数セルが、 parameter-list と forms から作られるラムダ式 (lambda parameter-list . forms) を指すようにすることで行なわれます。値セル は関数セルとは独立しているため、同じシンボルをグローバル変数として用いても かまいません。
(上で述べたように) forms 中の最初の 2つのフォームは、ドキュメンテーション ストリングや宣言であることができます。 defun は関数の再定義をチェックして はいないため、 (car のような) primitive を何も知らせず(再)定義してしまうこ とさえありえます。 defun は symbol を返します。
(defun foo () 5) => foo (foo) => 5
(defun bar (a &optional b &rest c) (list a b c)) => bar (bar 1 2 3 4 5) => (1 2 (3 4 5)) (bar 1) => (1 nil nil) (bar) -> ERROR: Wrong number of arguments.
(defun capitalize-backwards () "This fuction makes the last letter of a word upper-case." (interactive) (backward-word 1) (forward-word 1) (backward-char 1) (capitalize-word 1)) => capitalize-backwards