相关疑难解决方法(0)

关于执行订单的问题

我正在尝试学习Common Lisp,并在repl中尝试一些东西时发现了意想不到的东西(对我而言).基于大多数编程语言中的执行顺序,以及我从lisp一直听到的一流的功能支持,我认为以下应该有效:

((if t 'format) t "test")
Run Code Online (Sandbox Code Playgroud)

在Ruby中我可以做到:

if true
  Object.method(:puts)
end.call("test")
Run Code Online (Sandbox Code Playgroud)

我对上述lisp代码应该如何工作的思考是它应该评估内部lisp表单,返回格式,然后开始评估外部lisp表单,format然后是第一个原子.我读过第一个表单需要是一个符号,所以我也试过((if t format) t "test"),尽管我最初的想法是,这会尝试在从内部表单返回之前评估格式.

我注意到有时候需要先输入lisp表单#'才能使结果可以调用,但是使用(#'(if t 'format) t "test")也不起作用.我确信我只是误解了一些基本的东西,因为我对lisp很新,但是这里发生了什么?

lisp sbcl common-lisp

2
推荐指数
1
解决办法
67
查看次数

标签 统计

common-lisp ×1

lisp ×1

sbcl ×1