我正在尝试学习Common,并在repl中尝试某些东西时(对我来说)发现了一些意想不到的东西。基于大多数编程语言的执行顺序,以及我从lisp中听到的一流函数支持,我认为以下几点应该有效:
((if t 'format) t "test")
在Ruby中,我可以做到:
if true
Object.method(:puts)
end.call("test")
我在上面的lisp代码应该如何工作的想法是,它应该计算内部lisp表单,返回格式,然后开始计算外部lisp形式,然后format是第一个原子。我读到第一个表单需要是一个符号,所以我也尝试了((if
是否有Lisp的方言具有Lisp的语义和C的低级操作?例如检索任意内存地址(虚拟内存或物理内存)并对其进行操作;指向硬件设备的指针.
例如:
(defvar a '(1 2 3 4)) ;; I have a list
(defvar b (cdr a)) ;; b is the cdr of a. But I want b to
;; actually refer to the tail of a
(setf b '(4 5 6)) ;; b now has new value, but a remains unchanged
我想要的