LISP - Veri Türleri

LISP'de değişkenler yazılmaz, ancak veri nesneleri yazılır.

LISP veri türleri olarak kategorize edilebilir.

  • Scalar types - örneğin sayı türleri, karakterler, semboller vb.

  • Data structures - örneğin listeler, vektörler, bit vektörler ve dizeler.

Açıkça belirtmediğiniz sürece, herhangi bir değişken herhangi bir LISP nesnesini değeri olarak alabilir.

Bir LISP değişkeni için bir veri türü belirtmek gerekli olmasa da, belirli döngü genişletmelerinde, yöntem bildirimlerinde ve sonraki bölümlerde tartışacağımız diğer bazı durumlarda yardımcı olur.

Veri türleri bir hiyerarşi içinde düzenlenmiştir. Bir veri türü, bir LISP nesneleri kümesidir ve birçok nesne bu tür bir kümeye ait olabilir.

typep yüklem, bir nesnenin belirli bir türe ait olup olmadığını bulmak için kullanılır.

type-of işlev, belirli bir nesnenin veri türünü döndürür.

LISP'de Tip Tanımlayıcıları

Tür belirleyicileri, veri türleri için sistem tanımlı sembollerdir.

dizi Fixnum paket basit dizgi
atom yüzen yol adı basit vektör
Bignum işlevi rasgele durum tek şamandıra
bit karma tablo oran standart karakter
bit vektör tamsayı akılcı Akış
karakter anahtar kelime okunabilir dizi
[Yaygın] liste sıra [string-char]
derlenmiş işlev uzun şamandıra kısa şamandıra sembol
karmaşık nill imzalı bayt t
Eksileri boş basit dizi işaretsiz bayt
çift ​​yüzer numara basit bit vektör vektör

Bu sistem tanımlı türlerin yanı sıra, kendi veri türlerinizi oluşturabilirsiniz. Bir yapı türü kullanılarak tanımlandığındadefstruct işlev, yapı türünün adı geçerli bir tür simgesi haline gelir.

örnek 1

Main.lisp adlı yeni bir kaynak kodu dosyası oluşturun ve içine aşağıdaki kodu yazın.

(setq x 10)
(setq y 34.567)
(setq ch nil)
(setq n 123.78)
(setq bg 11.0e+4)
(setq r 124/2)

(print x)
(print y)
(print n)
(print ch)
(print bg)
(print r)

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ç -

10 
34.567 
123.78 
NIL 
110000.0 
62

Örnek 2

Ardından, önceki örnekte kullanılan değişkenlerin türlerini kontrol edelim. Main adlı yeni kaynak kodu dosyası oluşturun. lisp ve içine aşağıdaki kodu yazın.

(defvar x 10)
(defvar y 34.567)
(defvar ch nil)
(defvar n 123.78)
(defvar bg 11.0e+4)
(defvar r 124/2)

(print (type-of x))
(print (type-of y))
(print (type-of n))
(print (type-of ch))
(print (type-of bg))
(print (type-of r))

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ç -

(INTEGER 0 281474976710655) 
SINGLE-FLOAT 
SINGLE-FLOAT 
NULL 
SINGLE-FLOAT 
(INTEGER 0 281474976710655)