相关疑难解决方法(0)

Lisp中的setq和defvar

我看到实用的Common Lisp使用(defvar *db* nil)设立一个全局变量.是否可以setq用于同一目的?

使用defvarvs. 的优点/缺点是setq什么?

lisp variables common-lisp variable-declaration assign

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

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万
查看次数

LET和SETQ之间的区别?

我正在使用GCL在Ubuntu上编程.从各种来源的Common Lisp文档中,我了解到let创建局部变量,并setq设置现有变量的值.在下面的例子中,我需要创建两个变量并对它们的值求和.

运用 setq

(defun add_using_setq ()
  (setq a 3)  ; a never existed before , but still I'm able to assign value, what is its scope?
  (setq b 4)  ; b never existed before, but still I'm able to assign value, what is its scope?
  (+ a b))
Run Code Online (Sandbox Code Playgroud)

运用 let

(defun add_using_let ( )
  (let ((x 3) (y 4)) ; creating variables x and y
     (+ x y)))
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,我似乎都取得了相同的结果; 使用setq …

lisp common-lisp

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

在Lisp中,如何修复"警告:假设特殊?"

在这个文件中,我得到9个"假定特殊"的警告.他们是

;;;*** Warning in CHECK-ROW: CHECKARRAY assumed special in SETQ
;;;*** Warning in CHECK-ROW: RESULT assumed special in SETQ
;;;*** Warning in CHECK-ROW: CHECKARRAY assumed special
;;;*** Warning in CHECK-ROW: CHECKARRAY assumed special
;;;*** Warning in CHECK-ROW: CHECKARRAY assumed special
;;;*** Warning in CHECK-ROW: CHECKARRAY assumed special
;;;*** Warning in CHECK-ROW: CHECKARRAY assumed special
;;;*** Warning in CHECK-ROW: RESULT assumed special in SETQ
;;;*** Warning in CHECK-ROW: RESULT assumed special
Run Code Online (Sandbox Code Playgroud)

整个文件只有两个功能 -

(defun get-element (x y board)
 (nth y (nth …
Run Code Online (Sandbox Code Playgroud)

lisp warnings function common-lisp

3
推荐指数
2
解决办法
2774
查看次数