Unterschied zwischen LET und SETQ?

Ich bin der Programmierung unter Ubuntu mithilfe von GCL. Aus den Unterlagen, die auf Common Lisp aus verschiedenen Quellen, die ich verstehe, dass let erstellt lokalen Variablen, und setq legt die Werte bestehenden Variablen. In nachstehenden Fällen, die ich brauche, um erstellen Sie zwei Variablen und die Summe Ihrer Werte.

Mit 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))

Mit let

(defun add_using_let ( )
  (let ((x 3) (y 4)) ; creating variables x and y
     (+ x y)))

In beiden Fällen, die ich scheinen das gleiche Ergebnis zu erzielen; was ist der Unterschied zwischen der Verwendung setq und let hier? Warum kann ich nicht mit setq (da es syntaktisch leicht) in allen Orten, wo ich let?

Schreibe einen Kommentar