LISP - Tipe Data

Di LISP, variabel tidak diketik, tetapi objek data diketik.

Tipe data LISP dapat dikategorikan sebagai.

  • Scalar types - misalnya, jenis angka, karakter, simbol, dll.

  • Data structures - misalnya, daftar, vektor, bit-vektor, dan string.

Variabel apa pun dapat mengambil objek LISP apa pun sebagai nilainya, kecuali Anda telah mendeklarasikannya secara eksplisit.

Meskipun, tidak perlu untuk menentukan tipe data untuk variabel LISP, bagaimanapun, ini membantu dalam ekspansi loop tertentu, dalam deklarasi metode dan beberapa situasi lain yang akan kita bahas di bab selanjutnya.

Tipe data disusun menjadi hierarki. Tipe data adalah sekumpulan objek LISP dan banyak objek mungkin termasuk dalam satu set tersebut.

Itu typep predikat digunakan untuk menemukan apakah suatu objek termasuk dalam tipe tertentu.

Itu type-of fungsi mengembalikan tipe data dari objek tertentu.

Ketik Penentu di LISP

Penentu tipe adalah simbol yang ditentukan sistem untuk tipe data.

Himpunan fixnum paket string sederhana
atom mengapung nama jalan sederhana-vektor
bignum fungsi keadaan acak pelampung tunggal
sedikit tabel hash perbandingan standar-char
bit-vektor bilangan bulat rasional aliran
karakter kata kunci dapat dibaca tali
[umum] daftar urutan [string-char]
compiled-function pelampung panjang pelampung pendek simbol
kompleks nihil byte bertanda tangan t
kontra batal array sederhana unsigned-byte
mengapung ganda jumlah vektor-bit-sederhana vektor

Selain tipe yang ditentukan sistem ini, Anda bisa membuat tipe data Anda sendiri. Ketika tipe struktur ditentukan menggunakandefstruct fungsi, nama tipe struktur menjadi simbol tipe yang valid.

Contoh 1

Buat file kode sumber baru bernama main.lisp dan ketikkan kode berikut di dalamnya.

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

Ketika Anda mengklik tombol Execute, atau mengetik Ctrl + E, LISP segera menjalankannya dan hasil yang dikembalikan adalah -

10 
34.567 
123.78 
NIL 
110000.0 
62

Contoh 2

Selanjutnya mari kita periksa jenis variabel yang digunakan pada contoh sebelumnya. Buat file kode sumber baru bernama main. cadel dan ketik kode berikut di dalamnya.

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

Ketika Anda mengklik tombol Execute, atau mengetik Ctrl + E, LISP segera menjalankannya dan hasil yang dikembalikan adalah -

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