List Of Char

Teks adalah list yang elemennya terdiri dari karakter. Karakter adalah himpunan terhingga
dari ‘a’..’z’, ‘A..’Z’, ‘0..9’.
Definisi rekursif
• Basis 0 : 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 T, dengan e sebagai elemen
pertama e : e o T → T’}
Kons• : Teks, character →Teks
{ Kons(T,e): menghasilkan sebuah list dari T dan e, dengan e sebagai elemen terakhir
teks : T •e → T’}

DEFINISI DAN SPESIFIKASI SELEKTOR O
FirstElmt: List tidak kosong →elemen
{FirstElmt(L) Menghasilkan elemen pertama list L }
Tail : List tidak kosong →List
{Tail(L) : Menghasilkan list tanpa elemen pertama list L, mungkin kosong }
LastElmt : List tidak kosong →elemen
{LastElmt(L) : Menghasilkan elemen terakhir list L }
Head : List tidak kosong → List
{Head(L) : Menghasilkan list tanpa elemen terakhir list L, mungkin kosong}

Program dalam LISP
(defun Konso (e L) ;menghasilkan sebuah list dari e dan L, dengan e sebuah elemen
(cons e L))
(defun kons (L e) ;menghasilkan sebuah list dari L dan e, dengan e sebuah elemen
(reverse (cons e (reverse L))));selektor
(defun firstList (S) ;menghasilkan elemen pertama list yang mungkin sebuah list atau atom
(car S))
(defun TailList (S) ;menghasilkan “sisa” list of list tanpa elemen pertama list S
(cdr S))
(defun LastList (S) ;menghasilkan elemen terakhir list yang mungkin sebuah list atau atom
(car (reverse S)))
(defun HeadList (S) ;menghasilkan “sisa” list of list tanpa elemen terakhir list S
(reverse (cdr (reverse S))))
Contoh List Of Character
Teks : Hitung E
Hitung Ef nbEF (T)
DEFINISI DAN SPESIFIKASI
nba : Teks → integer > 0
{ nbE(T) menghasilkan banyaknya kemunculan ‘E dalam teks T }
REALISASI
Basis : teks kosong, tidak mengandung ‘E, nba (L) = 0
Rekurens:
nbE(L)=nbE(Head(L)) + 1 jika e adalah ‘E
nbE(L) =nbE(Head(L)) jika e bukan ‘E
Realisasi dalam Lisp
(defun nbE (L) ;menghitung kemunculan elemen ‘E dalam List L
(cond ((null L) 0)
((equal (car L) ‘E) (+ 1 (nbE (cdr L))))
(t (nbE (cdr L)))))LOC

Leave a Reply

Your email address will not be published. Required fields are marked *