lisp の勉強をしてると xyzzy に限界を感じてきた。といっても xyzzy が悪いわけじゃなく、処理系が1つだけなのが問題。
例題のコードを書いて動かなかったときとか、common lisp に準拠してない部分か、ただ単にタイプミスなのかが分からなくなってきて混乱する。
こんなときは他の処理系でやってみると切り分けができる。
いくつかある common lisp 処理系 の中から評判のいい Clozure CL をインストールしてみた。
clisp でもよかったけど、どうせならネイティブコンパイルできるほうがいいので。
インストール
- Clozure CL をダウンロード
ココの「Windows XP and later」を選ぶ - zip を解凍したフォルダの中の ccl というフォルダを適当な場所にコピる。d:/util/cclとか。
- REPLを試す
- 起動
wx86cl.exe をクリックすると、DOS窓が開いて Clozure CL のプロンプトが出る - 適当にやってみる。(+ 1 2)とか。
- 抜けるには (quit)
- 起動
lisp ファイルをロードして実行してみる
1. テスト用の lisp ファイルをつくって、適当なところにおく
たとえばこんなの↓を d:/test.l として保存
(defun my-fact (n)
(if (< n 1) 1
(* n (my-fact (1- n)))))
(my-fact 3)
2. ロードする。Clozure CL を起動し、
(load "d:/test.l")
コンパイルしてみる
1. さっき作った lisp ファイルを修正する
(defun my-fact (n)
(if (< n 1) 1
(* n (my-fact (1- n)))))
(defun print-fact () ; 追加
(print (my-fact 3))) ;
; コンパイル用の修正
(ccl:save-application "test.exe" ; 出力ファイル名 ".exe"をつける
2. コンパイル。DOS窓を開いて test.l のフォルダで下記をする。
d:\util\ccl\wx86cl --no-init --load test.l
3. 実行。test.exe ができているので DOS窓から実行してみる。
まあ、そのうち xyzzy から使えるようにしよう。
参考URL
- http://common-lisp-users.jp/index.cgi?%bd%e8%cd%fd%b7%cf
- http://homepage1.nifty.com/~skz/Entry/CL-start.html
0 コメント :
コメントを投稿