next up previous
Next: 5.3 コンパイル compile Up: 5 Lispの処理 Previous: 5.1 Lispインタプリタ

5.2 ファイルの読み込み(ロード)

関数定義の集合でプログラムを作りますが,そのプログラムは ファイルに書いておき,そのファイルをLisp処理系へloadする ことでプログラムを読み込んだことになります. たとえば,test.lというファイルに,

;;
;; 関数定義ファイルの例
;;
(defun test (n)
  (+ (fib n) (fact n))
  )

(defun fib (n)
  (if (< n 2) 1
    (+ (fib (1- n)) (fib (- n 2)))))

(defun fact (n)
  (if (< n 2) 1
    (* n (fact (1- n)))))
という具合に定義されていたとして,次のように loadを行います.そして,test.lの中に入っている 関数定義された関数fibやfactを実行することが できます.

USER(34): (load "test.l")
; Loading e:\home\inaba\prog\lisp\cl\test.l
T
USER(37): (test 5)
128
USER(26): (fib 5)
8
USER(27): (fib 10)
89
USER(28): (fib 19)
6765
USER(29): (fact 5)
120
USER(30): (fact 10)
3628800
USER(31): (fact 19)
121645100408832000
この例は,AllegroCommonLispを使った例で,USER(xx): がプロンプトです. このプロンプトに対して式を入力すると,式の計算結果が画面に表示されます.

generated through LaTeX2HTML. M.Inaba 平成18年5月7日