1

我刚开始玩 Lisp,我正在尝试在 cons 中使用 funcall。

这就是我想要做的:

(cons  '(1 2 3) '(1 (funcall #'rest '(a b)) ))

结果应该是:

((1 2 3) 1 (b))

我知道这有效:

(cons  '(1 2 3) (funcall #'rest '(a b)))

我已经试过了,但没有用

(cons  '(1 2 3) `,'(1 (funcall #'rest '(a b)) ))
(cons '(1 2 3) '(1 (apply 'rest '(a b))))
(cons '(1 2 3) '(1 `,(apply 'rest '(a b))))

提前致谢。

4

2 回答 2

3
(cons '(1 2 3) `(1 ,(funcall #'rest '(a b))))
于 2013-04-20T16:12:03.813 回答
3

引用列表时,列表内的所有内容都被引用,因此没有函数调用。你可以像这样实现你想要的:

[1]> (cons  '(1 2 3) (list 1 (funcall #'rest '(a b)) ))
((1 2 3) 1 (B))
[2]> 
于 2013-04-19T21:04:04.060 回答