LISP - Değişkenler
LISP'de her değişken bir symbol. Değişkenin adı, sembolün adıdır ve sembolün saklama hücresinde saklanır.
Global Değişkenler
Global değişkenler, LISP sistemi boyunca kalıcı değerlere sahiptir ve yeni bir değer belirtilinceye kadar yürürlükte kalır.
Global değişkenler genellikle defvar inşa etmek.
Örneğin
(defvar x 234)
(write x)
Yürüt düğmesine tıkladığınızda veya Ctrl + E tuşlarına bastığınızda, LISP bunu hemen yürütür ve döndürülen sonuç
234
LISP'de değişkenler için tür bildirimi olmadığından, doğrudan bir sembol için bir değer belirtirsiniz. setq inşa etmek.
Örneğin
->(setq x 10)
Yukarıdaki ifade, 10 değerini x değişkenine atar. Sembolün kendisini bir ifade olarak kullanarak değişkene başvurabilirsiniz.
symbol-value işlevi, sembol saklama yerinde saklanan değeri çıkarmanıza izin verir.
Örneğin
Main.lisp adlı yeni bir kaynak kodu dosyası oluşturun ve içine aşağıdaki kodu yazın.
(setq x 10)
(setq y 20)
(format t "x = ~2d y = ~2d ~%" x y)
(setq x 100)
(setq y 200)
(format t "x = ~2d y = ~2d" x y)
Yürüt düğmesine tıkladığınızda veya Ctrl + E tuşlarına bastığınızda, LISP bunu hemen yürütür ve döndürülen sonuç olur.
x = 10 y = 20
x = 100 y = 200
Yerel Değişkenler
Yerel değişkenler, belirli bir prosedür içinde tanımlanır. Bir işlev tanımında bağımsız değişken olarak adlandırılan parametreler de yerel değişkenlerdir. Yerel değişkenlere yalnızca ilgili işlev içinde erişilebilir.
Global değişkenler gibi, yerel değişkenler de setq inşa etmek.
Başka iki yapı var - let ve prog yerel değişkenler oluşturmak için.
Let yapısı aşağıdaki sözdizimine sahiptir.
(let ((var1 val1) (var2 val2).. (varn valn))<s-expressions>)
Burada var1, var2, ..varn değişken isimleridir ve val1, val2, .. valn ilgili değişkenlere atanan ilk değerlerdir.
Ne zaman letçalıştırılır, her değişkene ilgili değer atanır ve son olarak s-ifadesi değerlendirilir. Değerlendirilen son ifadenin değeri döndürülür.
Bir değişken için bir başlangıç değeri dahil etmezseniz, nil.
Misal
Main.lisp adlı yeni bir kaynak kodu dosyası oluşturun ve içine aşağıdaki kodu yazın.
(let ((x 'a) (y 'b)(z 'c))
(format t "x = ~a y = ~a z = ~a" x y z))
Yürüt düğmesine tıkladığınızda veya Ctrl + E tuşlarına bastığınızda, LISP bunu hemen yürütür ve döndürülen sonuç olur.
x = A y = B z = C
prog construct ayrıca ilk argüman olarak yerel değişkenlerin listesine sahiptir ve bunu, prog, ve herhangi bir sayıda s-ifadesi.
prog işlev, s-ifadelerinin listesini sırayla çalıştırır ve adında bir işlev çağrısıyla karşılaşmadığı sürece nil değerini döndürür return. Sonra argümanı return işlev değerlendirilir ve döndürülür.
Misal
Main.lisp adlı yeni bir kaynak kodu dosyası oluşturun ve içine aşağıdaki kodu yazın.
(prog ((x '(a b c))(y '(1 2 3))(z '(p q 10)))
(format t "x = ~a y = ~a z = ~a" x y z))
Yürüt düğmesine tıkladığınızda veya Ctrl + E tuşlarına bastığınızda, LISP bunu hemen yürütür ve döndürülen sonuç olur.
x = (A B C) y = (1 2 3) z = (P Q 10)