我試圖找出是否有這樣做的SUBLIS
和Common Lisp中的混合物反引號,而不必寫我自己的一個簡單的方法。SUBLIS和拼接
定期SUBLIS
會給我得到以下結果:(一般情況下,可以是任意複雜的樹,不只是一個簡單的列表)
CL> (sublis '((X . (1 2 3))) '(bar (foo X)))
(BAR (FOO (1 2 3)))
但我尋找到一個版本該拼接列表進入替代,如:
CL> (sublis1 '((X . (1 2 3))) '(bar (foo X)))
(BAR (FOO 1 2 3))
就像它發生在反引號和逗號ATSIGN:
CL> (let ((x (list 1 2 3))) `(bar (foo ,@x)))
(BAR (FOO 1 2 3))
每一段代碼可以有錯誤,如果存在一個核心功能來完成這項工作,這將是更好的使用它,而不是寫一個新的。這是問題的真正原因。我們都可以想出編寫函數sublis1的方法。 –
沒錯,對不起,沒有說清楚:這個想法是不是索取sublis1'的'實現(我想象它不會是困難的),而是看是否有一個簡單的解決方案在那裏,戰鬥測試等不管怎麼說,感謝您的實施! –