: コンパイラ
: その他
: 評価
  目次
  索引
(load 〈ファイル名〉[〈スイッチ〉]) 【関数】
指定されたファイルをロードする.
つまり,ファイルからフォームを1つ読み込んではそれを評価する,
ということを,読み込むフォームがなくなるまで繰り返す.
〈ファイル名〉 は,文字列ならば
そのままでファイル名を表す.
記号の場合は,その印字名で表される
ファイルが存在すればそのままでファイル名を表す.
そのファイルが存在しないで印字名に
`` .lsp''または`` .fas''を付けたファイルが
存在すればそれをファイル名とする.
`` .lsp''と`` .fas''を付けたファイルが
同時に存在する場合は`` .fas''を付けたファイル名を表す.
〈スイッチ〉 が #f以外なら,
読み込まれたフォームの評価結果を端末機に出力する.
#fならば出力しない.
〈スイッチ〉のデフォルト値は #fである.
loadの返す値は 〈ファイル名〉 である.
*loading-message* 【変数】
loadがファイル・ローディングのメッセージを出力するかどうかを
指定する. #f以外の値ならメッセージを出力し, #fなら
出力しない.初期値は #tである.
例:
> *loading-message*
#t
> (load 'fact)
Loading fact.lsp...
Finished.
"fact.lsp"
> (set! *loading-message* #f)
#f
> (load 'fact)
"fact.lsp"
(autoload 〈記号〉〈ファイル名〉) 【関数】
〈記号〉の表す大域変数の値が必要になった場合に,
まず〈ファイル名〉 で表されるファイルをロードしてから
値を求めるように指示する.
ただし,変数を参照する前に define等で値が与えられれば
ファイルのロードは行わない.
ファイルの指定のしかたについては15.3節を参照されたい.
autoloadは〈記号〉を値とする.
ロードされるファイルには,
その変数の値を与えるフォームが格納されているのが普通である.
ファイルのロードによってその変数の値が与えられると,
以後その変数を参照してもファイルのロードは行われない.
これによって,大域関数などを,必要になった時にはじめて
ファイルからロードしてくることが可能になる.
例:
hanoi.lsp に次のフォームが格納されているとする.
(define (hanoi n from to via)
(if (<= n 1)
(list (list from '-> to))
(append
(hanoi (1- n) from via to)
(hanoi 1 from to via)
(hanoi (1- n) via to from))))
> (autoload 'hanoi "hanoi.lsp")
hanoi
> (hanoi 2 'a 'b 'c)
((a -> c) (a -> b) (c -> b))
: コンパイラ
: その他
: 評価
  目次
  索引
Tsuneyasu KOMIYA
平成14年2月22日