Senin, 09 Januari 2023

Fungsi cond

Format penulisan : (cond  [ (test1  expressions1) [ (test2  expressions2) ... ]] )

Fungsi ini adalah varian Lisp dari fungsi "switch / case" pada bahasa pemrograman lainnya, fungsi "cond" ini menggabungkan beberapa fungsi "if + then" menjadi ekspresi yang ringkas.

Argumen:

test1 : ekspresi Lisp apa pun; jika mengevaluasi ke non-NIL, maka kode cabangnya diproses; T dapat

            digunakan sebagai opsi default terakhir.

expressions1 : ekspresi lisp, argumen yang dieksekusi jika kondisi pengujian berhasil.


Return Value (Nilai balik/ nilai yang dikembalikan)

Nilai ekspresi terakhir dalam sublist. Jika hanya ada satu ekspresi dalam sublist (yaitu, jika hasilnya tidak ada), nilai ekspresi pengujian akan dikembalikan. Jika tidak ada argumen yang diberikan, "cond" mengembalikan nihil.


Catatan tambahan :

Fungsi "cond" menerima sejumlah daftar sebagai argumen. Ini mengevaluasi item pertama dalam setiap daftar (dalam urutan yang diberikan) hingga salah satu item ini mengembalikan nilai selain nil, yang kemudian mengevaluasi ekspresi yang mengikuti tes yang berhasil.


Contoh :

;;contoh 1

(setq aa 10)

(setq bb 15)

(setq cc nil)

(cond )    ;; menghasilkan "nil"

(cond aa) ;; menghasilkan "10"

(cond aa bb) ;; menghasilkan "10"

(cond cc bb) ;; menghasilkan "15"

(cond cc bb) ;; menghasilkan "15"

(cond (aa bb) ("nilai lain")) ;; menghasilkan "15"

(cond (cc bb) ("nilai lain")) ;; menghasilkan "nilai lain"


;;contoh 2 (fungsi "cond" untuk menghasilkan nilai absolut)

(setq aa -10)

(cond ((minusp aa) (- aa)) (aa)) ;; menghasilkan "10"

(cond ((minusp aa) (- aa)) (t aa)) ;; menghasilkan "10"

(setq aa 10)

(cond ((minusp aa) (- aa)) (aa)) ;; menghasilkan "10"

(cond ((minusp aa) (- aa)) (t aa)) ;; menghasilkan "10"


;;contoh 3 (fungsi "cond" untuk setting input default)

(initget "Apel Jambu Pisang")

(setq pilih (cond ((getkword "Pilih buah yang kamu sukai [Apel/Jambu/Pisang] <Apel> : ")) ("Apel")))


jangan salah tulis seperti ini ya, 

(setq pilih (cond (getkword "Pilih buah yang kamu sukai [Apel Jambu Pisang] <Apel> : ") ("Apel") )

karena ini akan membuat nilai p selalu berisi string "Pilih buah yang kamu sukai [Apel Jambu Pisang] <Apel> : ""



ps : kalau mengacu ke Autocad format penulisan fungsi "cond" adalah sebagai berikut :

(cond [((test) (result ...)) ...])




Tidak ada komentar:

Posting Komentar