by shigemk2

当面は技術的なことしか書かない

リスト遊び 3-1 関数定義

前回
リスト遊び 2-7 cons - by shigemk2

Emacs Lispで関数を定義するにはdefunという特殊関数を使う。
defunの書式は、

(defun 関数名 (仮引数1 仮引数2 .....)
式1
式2
...
)

  • 第一引数は関数名で、関数名はシンボルの規則に従う
  • 第二引数は仮引数のリスト。仮引数の名前もシンボルの規則に従って自由に決定できる。仮引数は0個以上であり、0個の場合は単に空リストを書く
  • 残りの引数が関数の本体になる。本体は1つ以上の式になる。この関数が呼び出されると、本体の式を順に評価していき、最後に評価した値を返す。

defunは特殊なので、引数は評価されない

;; もともとEmacsに用意されている関数を、ユーザ定義する
(defun 1+ (n)
  (+ n 1))
;; 1+

(defun 1- (n)
  (- n 1))
;; 1-

リスト遊び―Emacsで学ぶLispの世界 (ASCII SOFTWARE SCIENCE Language)

リスト遊び―Emacsで学ぶLispの世界 (ASCII SOFTWARE SCIENCE Language)