Go to the first, previous, next, last section, table of contents.

関数宣言

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


Go to the first, previous, next, last section, table of contents.