Download presentation
Presentation is loading. Please wait.
1
Bab 6 Pengaturcaraan Lisp
2
6.1. Jenis Data Asas Setiap ungkapan dalam LISP mengandungi sama ada suatu atom atau suatu senarai Atom – suatu entiti bermakna yang tidak boleh dibahagi atau dikecilkan lagi, contohnya 27, +, SATU Atom boleh terbahagi kepada dua jenis: Numerik – entiti yang bernilai numerik seperti 17, 3.2 Simbolik - seperti SATU, +, dll Senarai – mengandungi tanda buka kurungan ‘(‘, diikuti oleh satu atau lebih elemen (samada senarai atau atom) , dan diakhiri dengan tanda tutup kurungan ‘)’, contohnya: ( a b c (d e) )
3
6.2. Primitif Primititf - Prosedur asas yang disediakan oleh LISP
Berikut adalah primitif dalam LISP + - menambah - - menolak * - mendarab / - membahagi MAX - mendapatkan nilai maksima MIN - mendapatkan nilai minima Contoh: eval> ( ) 6
4
6.2. Primitif SETF – mengumpukkan suatu nilai (argumen kedua) kepada suatu simbol (argumen pertama) Contoh: eval> (SETF E 2.72) 2.72 eval> E QUOTE atau ` - mengembalikan item tanpa dinilai eval> (FIRST (FIRST ‘(A B C)) A eval> (FIRST ‘(FIRST (A B C )) FIRST
5
6.3. Pemilih sebahagian daripada unsur dalam senarai LISP: Terdapat beberapa prosedur pemilih yang disediakan oleh LISP untuk mendapatkan FIRST atau CAR - mengembalikan unsur pertama dalam senarai SECOND – mengembalikan unsur kedua dalam senarai THIRD – mengembalikan unsur ketiga dalam senarai LAST – mengembalikan unsur terakhir dalam senarai REST atau CDR – mengembalikan senarai setelah unsur pertama dibuang NTHCDR – mengembalikan senarai setelah n unsur pertama dibuang BUTLAST – mengembalikan senarai setelah n unsur terakhir dibuang LENGTH – mengembalikan bilangan unsur senarai paras teratas
6
6.3. Pemilih Contoh : (FIRST ‘(p h w) ) P (REST ‘(b k p h)) (K P H)
(FIRST (REST ‘((a b) (c d)))) ((C D)) (NTHCDR 2 ‘(a b c)) (C) (LAST ‘((a b) (c d))) ((C D)) (BUTLAST ‘(a b c) 50) NIL
7
6.4. Pembina Beberapa prosedur pembina yang boleh digunakan untuk membina senarai dalam LISP : CONS – menerima suatu ungkapan dan suatu senarai, menghasilkan suatu senarai baru yang mengandungi ungkapan sebagai unsur pertama dalam senarai (CONS ‘A ‘(B C)) (A B C) APPEND – menggabungkan kesemua unsur dalam senarai yang diberikan ke dalam senarai baru (APPEND ‘(A B C) ‘(X Y Z)) (A B C X Y Z) LIST – menghasilkan suatu senarai yang mengandungi kesemua argumennya (LIST ‘A ‘B ‘C) (A B C) REVERSE – menyongsangkan senarai yang diterima sebagai argumen (REVERSE ‘(A B C)) (C B A)
8
6.5. Definisi Prosedur dan Pengikatan
Pengguna boleh mendefinisikan prosedur sendiri menggunakan DEFUN DEFine FUNction Sintaks: (DEFUN <nama-fungsi> (<parameter>> <bentuk-pernyataan>) Contoh: eval>(DEFUN BOTH-ENDS (L) (CONS (FIRST L) (LAST L)) ) eval> (BOTH_ENDS ‘(A B C D E)) (A E)
9
6.5. Definisi Prosedur dan Pengikatan
Pengguna boleh mengikat parameter (dan memberi nilai kepada parameter ini) dan mendefinisikan skopnya Sintaks: (LET ((<parameter-1><nilai-awal-1>) (<parameter-2><nilai-awal-2>) . . . (<parameter-m><nilai-awal-m>)) <bentuk-1> <bentuk-2> <bentuk-m> Contoh: eval> (LET ((X 3) (Y 5)) (* X Y)) 15
10
6.5. Predikat Predikat – prosedur yang mengembalikan nilai sama ada BENAR atau PALSU Terdapat beberapa jenis predikat: Predikat Kesamaan Predikat Keahlian Predikat Jenis Data Predikat Senarai-kosong Predikat Nombor
11
6.5.1. Predikat Kesamaan Terdapat 4 predikat kesamaan:
EQUAL – adakah kedua-dua argumen ungkapan (senarai atau atom) yang sama ? EQL – adakah kedua-dua argumen simbol atau nombor yang sama? EQ – adakah kedua-dua argumen simbol yang sama? = - adakah kedua-dua argumen nombor yang sama?
12
Predikat Keahlian Predikat keahlian (MEMBER) menguji sama ada argumen pertama adalah unsur (paras teratas) bagi argumen kedua Hanya boleh menguji sekiranya argumen pertama adalah berbentuk simbolik MEMBER mengembalikan senarai yang tinggal selepas padanan dijumpai Contoh: eval> (MEMBER ‘MOTHER ‘(tell me about your mother please) (MOTHER PLEASE) eval> (MEMBER ‘MOTHER ‘((FATHER SON) (MOTHER DAUGHTER))) NIL
13
6.5.3. Predikat Jenis Data Menyemak jenis data dalam ungkapan: Contoh:
ATOM – adakah unsur sejenis atom? NUMBERP – adakah unsur sejenis nombor? SYMBOLP – adakah unsur sejenis simbol? LISTP – adakah unsur sejenis senarai? Contoh: eval> (atom ‘pi) T eval> (symbolp pi) NIL
14
6.5.4. Predikat Senarai-Kosong
Menyemak sama ada senarai adalah kosong Dua predikat yang boleh digunakan: NULL - EQL – adakah kedua-dua argumen simbol atau nombor yang sama?
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.