有人可以解释为什么我使用 sbcl 和 clisp 为以下简单程序得到不同的结果吗?我在做什么是语言未定义的,还是两个 lisp 解释器之一是错误的?
; Modify the car of the passed-in list
(defun modify (a) (setf (car a) 123))
; Create a list and print car before and after calling modify
(defun testit () (let ((a '(0)))
(print (car a))
(modify a)
(print (car a))))
(testit)
SBCL(版本 1.0.51)产生:
0
0
CLISP(2.49 版)产生(我所期望的):
0
123