List Of Character LISP

List of Character

Definisi :
Teks adalah list yang elemennya terdiri dari karakter. Karakter adalah himpunan terhingga dari ‘a’…’z’, ‘A’…’B’, ‘0’…’9′
Definisi Rekursif terdiri dari Basis dan Rekuren
Basis : Teks Kosong adalah teks
Rekurens : Teks dapat dibentuk dengan menambahkan sebuah karakter pada teks

Definisi dan Spesifikasi Type :
type Teks : List of character
(Definisi Teks : sesuai dengan definisi rekursif di atas )

Definisi dan Spesifikasi Konstruktor:
Konso : character, Teks → Teks
Konso (e,T): menghasilkan sebuah list dari e dan L, dengan e sebagai elemen
pertama e : e o L → L’
Kons : Teks, character → Teks
Kons (L,e): menghasilkan sebuah list dari T dan e, dengan e sebagai elemen terakhir
teks : L • e → L

Definisi dan Spesifikasi Selektor:
FirstChar: Teks tidak kosong → character
FirstElmt(L) Menghasilkan character pertama Teks L
Tail : Teks tidak kosong → Teks
Tail(L) : Menghasilkan list tanpa elemen pertama Teks L
LastChar : Teks tidak kosong → character
LastElmt(L) : Menghasilkan character terakhir Teks L
Head : Teks tidak kosong → Teks
Head(L) : Menghasilkan list tanpa elemen terakhir Teks L

Realisasi dalam Lisp

(defun konso(e L) ;menghasilkan sebuah list dari e dan L, dengan e sebagai elemen pertama
(cons e L)
)
(defun kons(L e) ;menghasilkan sebuah list dari L dan e, dengan e sebagai elemen terakhir
(reverse (cons e (reverse L)))
)
(defun firstelmt(L) ;Menghasilkan karakter pertama Teks L
(car L)
)
(defun tail(L) ;Menghasilkan list tanpa elemen pertama Teks L
(cdr L)
)
(defun lastelmt(L) ;Menghasilkan karakter terakhir Teks L
(car (reverse L))
)
(defun head(L) ;Menghasilkan list tanpa elemen terakhir Teks L
(reverse (cdr (reverse L)))
)

loc 1

Contoh penggunaan List Of Character
Judul :
Hitchar (L)
Definisi dan Spesifikasi :
Hitchar : Teks → integer > 0
{ Hitchar(L) menghasilkan banyaknya kemunculan ‘char1’ dalam List }
Ralisasi :
Basis : jika list kosong 0
Rekurens: if (FirstElment L) = char1, then + 1 Hitchar char1 (Tail L)
else Hitchar char1 (Tail L)

;mencari banyaknya char dalam list of char
(defun hitChar (char1 L)
(cond((null L)0)
((eq(car L) char1)(+ 1 (hitChar char1 (cdr L))))
(t(hitChar char1(cdr L)))
)
)

loc2
 

4,700 thoughts on “List Of Character LISP