以下に示すmodify listという機能の実装がありますが、これはトップレベルのリストでのみ機能します。LISPの変更/置換
(defun modify-list (old new a-list)
(cond
((null a-list) nil)
((eql (car a-list) old) (cons new (modify-list old new (cdr a-list))))
(T (cons (car a-list)(modify-list old new (cdr a-list))))))
CL-USER 16:6> (P X D G C X)<( '' X「(P DのG CはA)リスト変更) - GOODを!
CL-USER 17:6>(修正リスト 'a' x '(p a d(g a)c a)) (P X D(G A)C X)< ---- NOT GOOD!
誰でもこの機能をネストされたリストで動作させるのに役立つことができますか?ここで
これは私がスタックオーバーフローが大好きな理由です...いつも参考になりました – user1013905