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