我正在使用 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))
使用let
(defun add_using_let ( )
(let ((x 3) (y 4)) ; creating variables x and y
(+ x y)))
在这两种情况下,我似乎都取得了相同的结果;setq
using和let
here有什么区别?为什么我不能setq
在我需要使用的所有地方使用(因为它在语法上很容易)let
?