代码之家  ›  专栏  ›  技术社区  ›  iCodeSometime Francesca

关于执行令的问题

  •  2
  • iCodeSometime Francesca  · 技术社区  · 7 年前

    ((if t 'format) t "test")
    

    if true
      Object.method(:puts)
    end.call("test")
    

    我对上面的lisp代码应该如何工作的思考是,它应该评估内部lisp表单,返回格式,然后开始评估外部lisp表单,使用 format ((if t format) t "test") 尽管我最初的想法是,在从内部形式返回之前,这将尝试评估格式。

    #' 为了他们的结果是可调用的,但是使用 (#'(if t 'format) t "test")

    1 回复  |  直到 7 年前
        1
  •  8
  •   Barmar    7 年前

    FUNCALL

    (funcall (if t 'format) t "test")
    

    这类似于使用 .call()