【问题标题】:LISP list of expressions [closed]LISP 表达式列表 [关闭]
【发布时间】:2012-11-20 21:37:49
【问题描述】:

我有一个表达式列表,我想在宏内按顺序计算并返回最后一个表达式的值。我试过这个,但编译器不喜欢它:

(defmacro foo lst-of-exprs
  ',@lst-of-exprs) 

(defmacro foo lst-of-exprs
  '(progn ,@(lst-of-exprs))

有没有办法在不使用 do 循环的情况下做到这一点?

【问题讨论】:

  • “编译器不喜欢它”是什么意思?
  • 你打算如何使用你的宏?它与 progn 有何不同?
  • 能否给出错误信息?

标签: macros lisp


【解决方案1】:

你想要

(defmacro foo lst-of-exprs
  `(progn ,@lst-of-exprs))

虽然这实际上只是定义了progn 本身的同义词。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-05
    • 2012-11-15
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    • 1970-01-01
    相关资源
    最近更新 更多