Common Lisp, Scheme Part 14
■ このスレッドは過去ログ倉庫に格納されています
0142140
2005/12/04(日) 12:08:52S式で記述したものと見なすことができる。
以下の式をLISPに変換するとして
object.a.b.c(1 2);
この各演算子をS式の構文木として素直に変換するなら
(method-call (member-ref (member-ref object :a) :b) :c 1 2)
のようになると思う。
これをCLOSの流儀に従って
(c (slot-ref (slot-ref object :a) :b) 1 2)
というように、cを総称関数としてわざわざ定義する必然性は無い。
むしろcは単にメソッド呼び出しである、という標識があれば良いので、
前者と同様にslot-refと同じ形式でmethod-callを定義しても良いだろう。
こういった流儀ならば114からの流れで出てきた制限はなくなるかもしれない。
■ このスレッドは過去ログ倉庫に格納されています