我试图找出是否有这样做的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'的'实现(我想象它不会是困难的),而是看是否有一个简单的解决方案在那里,战斗测试等不管怎么说,感谢您的实施! –