相关疑难解决方法(0)

defvar,defparameter,setf和setq之间有什么区别

我发现了一个类似的问题.

但我不太明白这个解释.

所以我试图使用以下示例运行clisp:

  [1]> (defvar a 5)
  A
  [2]> (+ a 1)
  6
  [3]> (defparameter b 5)
  B
  [4]> (+ b 1)
  6
  [5]> (setf c 5)
  5
  [6]> (+ c 1)
  6
  [7]> (setq d 5)
  5
  [8]> (+ d 1)
  6
  [9]> (let ((a 500)) (+ a 1))
  501
  [10]> (let ((b 500)) (+ b 1))
  501
  [11]> (let ((c 500)) (+ c 1))
  501
  [12]> (let ((d 500)) (+ d 1))
  501
  [13]> 
Run Code Online (Sandbox Code Playgroud)

我发现的完全一样.

我无法弄清楚它们有什么不同?

lisp clisp common-lisp

41
推荐指数
2
解决办法
2万
查看次数

SETF既不会终止也不会报告错误

我是Common Lisp的初学者,遇到了这段代码:

(let ((foo (list 42)))
  (setf (rest foo) foo))
Run Code Online (Sandbox Code Playgroud)

在尝试执行它时,REPL似乎永远循环.

common-lisp setf

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

标签 统计

common-lisp ×2

clisp ×1

lisp ×1

setf ×1