saya menggunakan aplikasi yang bernama CLISP
soal bisa di download disini
oh iya saya lupa untuk coding bisa menggunakan notepad biasa bisa juga noteped++, disini saya menggunakan notepad++ :)
untuk jawaban nya saya ketik dibawah ini, agar para sobat blogger bisa memahami (biar gak cuma copas aja nanti dikira penjiplak ^_^ )
==============================================================
Modul F-05 :
;Modul F-05==============================================================
;Definisi dan Spesifikasi Konstruktor
(defun Konso(e L)
(cons e L)
)
(defun Kons(L e)
(reverse (cons e (reverse L)))
)
;Definisi dan Spesifikasi Selektor O
(defun FirstElmt(L)
(car L)
)
(defun Tail(L)
(cdr L)
)
(defun LastElmt(L)
(car (reverse L))
)
(defun Head(L)
(reverse (cdr (reverse L)))
)
(defun IsEmpty(L)
(if (null L)t
nil
)
)
(defun IsOneElmt(L)
(if (and (null (Tail L)) (not (IsEmpty L)) )t
nil
)
)
(defun IsEqual(L1 L2)
(cond ((and (null L1) (null L2)) T)
((equal (FirstElmt L1) (FirstElmt L2)) (IsEqual (Tail L1) (Tail L2)))
)
)
(defun NbElmt(L)
(length L)
)
(defun NbElmt1(L)
(if (null L)0
(+ 1 (NbElmt (Tail L)))
)
)
(defun ElmtkeN(N L)
(cond ((or (IsEmpty L) (= N 0))nil)
((= N 1) (FirstElmt L))
((ElmtkeN (- n 1) (Tail L)))
)
)
(defun Copy(L)
(cond ((IsEmpty L) '() )
((Konso (FirstElmt L) (Tail L)))
)
)
(defun CopyTail(L)
(cond ((IsEmpty L) '() )
((Kons (Head L) (LastElmt L)))
)
)
(defun Inverse(L)
(reverse L)
)
(defun InverseR(L)
(cond ((IsEmpty L) '() )
((Kons (Inverse(Tail L)) (FirstElmt L)))
)
)
;rekurens terhadap L1
(defun Konkat(L1 L2)
(cond ((IsEmpty L1) L2)
((Konso (FirstElmt L1) (Konkat (Tail L1) L2)))
)
)
;rekurens terhadap L2
(defun konkat2(L1 L2)
(cond ((IsEmpty L2) L1)
((Konkat (Kons L1 (FirstElmt L2)) (Tail L2)))
)
)
;Definisi dan Spesifikasi Predikat
(defun IsMember(X L)
(if (null L)nil
(if (equal X (FirstElmt L))T
(IsMember X (Tail L))
)
)
)
(defun IsFirst(X L)
(cond ((null L)nil)
((equal X (FirstElmt L)) T)
((IsFirst X (Head L)))
)
)
(defun IsLast(X L)
(cond ((null L)nil)
((equal X (FirstElmt(reverse L)))T)
((IsLast X (Tail L)))
)
)
(defun IsNbElmtN1(N L)
(if (and (/= N 0)(IsEmpty L))nil
(if (= N (NbElmt L))t
(IsNbElmtN1 (NbElmt L) (Tail L))
)
)
)
(defun IsNbElmtN(N L)
(if (= N (NbElmt L))T
nil
)
)
(defun IsInverse(L1 L2)
(if (= (NbElmt L1) (NbElmt L2))
(if (and (IsEmpty L1) (IsEmpty L2))T
(and (= (FirstElmt L1) (LastElmt L2)) (IsInverse (Head(Tail L1)) (Head(Tail L2))))
)
nil
)
)
(defun IsXElmtkeN (N X L)
(if (IsEmpty L) nil
(if (not (equal (ElmtkeN N L) X))
(IsXElmtKeN N X (Tail L))
T
)
)
)
jika para blogger malas untuk mengetik, saya langsung kasih file nya dibawah iniii.
jawaban : disini
Sekian postingan tentang "Modul F-05" tunggu selanjutnya Modul F-06.
0 Comments
EmoticonEmoticon