KANOU Hiroki
kanou****@khdd*****
2005年 5月 2日 (月) 12:52:03 JST
狩野です。 太田さん、テスト結果をお知らせくださりありがとうございます。 >> ◆コンパイル >ワーニングが出まくりですねぇ。これをまず潰したい所ですね... >僕のところでもassq, eqのエラーは出ます。 大量に出てくる Note に関してはとりあえず全部無視していいでしょう。 「関数の引数が使われていない」というメッセージなんですが、 lib.l の中で defelement, defkazari … などの各種のデータ定義の 類形に専門の語彙を定義するというプログラミングスタイルをとる以上、 引数としてとる lambda 式が使わない引数が存在することは避けられません。 悪いことに、このメッセージを出力しないようにする方法は (私の調べた かぎりでは) CMUCL には存在しないようです。 また、S 式のパターンマッチを行って、マッチした値に変数を束縛して実行 する match も (変数をマッチだけに使って束縛しない変数が存在するので) この Note が大量に出る原因となります。 Warning, Error については修正したほうが望ましいと思っています。 Warning は多くは未定義の変数のエラーなので、それらの変数を宣言する defvar を早めに読み込まれるファイルに移してやればいいのではない でしょうか。 Error については正直謎です。boundp や fboundp で nil が返ってくるのに その変数や関数を setq, defun しようとするとエラーになるのは処理系の バグとしか思われません。たしか CMUCL 18e では通ったと思うんですが…。 (ただし、浮動小数点数の精度が落ちるバグがあるので使用できません。) このへん、Lisp 素人の私がやっても完成度は高まらずに時間を浪費する ばかりなので、Common Lisp に詳しい方にお願いしたいところです。 (上に挙げた match も自分では実装できずに半年近く浪費し、人に頼んで 作ってもらったものですし。) >> ◆実行 >CMUCL 19aを使っているのですが、load-directory関数が無い様なので、以下 >のようにして実行しました。 load-directory の定義が無いのは写し間違いでした。すみまえfん。 >少し長くなりますが、実行結果は次のようになりました。 (略) >とりあえず動いてはいるようです。 確かに問題ないと思います。ありがとうございました。 狩野 宏樹 <kanou****@khdd*****>