【问题标题】:Funcall inside Cons LispCons Lisp 中的 Funcall
【发布时间】:2013-04-19 20:50:20
【问题描述】:

我刚开始玩 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))))

提前致谢。

【问题讨论】:

    标签: common-lisp


    【解决方案1】:
    (cons '(1 2 3) `(1 ,(funcall #'rest '(a b))))
    

    【讨论】:

      【解决方案2】:

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

      [1]> (cons  '(1 2 3) (list 1 (funcall #'rest '(a b)) ))
      ((1 2 3) 1 (B))
      [2]> 
      

      【讨论】:

      • @candiani 对不起,我昨晚没有从我的 clisp 会话中正确复制粘贴,现在它是正确的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-10
      • 2013-12-07
      • 2012-04-01
      • 1970-01-01
      • 2012-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多