【入門】CommonLispその2【質問よろず】
■ このスレッドは過去ログ倉庫に格納されています
0155デフォルトの名無しさん
2006/09/23(土) 00:53:39マクロの所でどうしてもわからないところがあります。
162pでcondを
(defmacro mycond (&rest clauses)
(expand-cond clauses))
(defun expand-cond (clauses)
(mycond ((null clauses) nil)
((eq (caar clauses) 't)
(cons 'progn (cdar clauses)) )
(t (list 'if
(caar clauses)
(cons 'progn (cdar clauses))
(expand-cond (cdr clauses )) ))))
と定義しているのですが、マクロcondのなかでexpand-condを評価し、
そのexpand-condのなかでまたマクロcondを評価してまたそのなかでexpand-condを・・・
という風に評価のループ状態になってしまうのではないでしょうか?
(実際xyzzyで試してみたらスタックフローオーバーになりました
■ このスレッドは過去ログ倉庫に格納されています