Kamis, 01 November 2012

Latihan LISP

Berikut ini merupakan ilustrasi cara LISP bekerja. Pertama, LISP akan membaca dari kiri sampai ujung terkanan. Kecuali jika terdapat eror, maka LISP akan berhenti sebelum sampai ke kanan. Kedua, Lisp akan mengeksekusinya dari kanan menuju ke kiri. Mungkin daripada balik lagi ke kiri bikin cape saja..... mendingan sikat saja dari kanan. :)


>( cons ( first '( a s k ))( cons 'juga ( rest '( a s k ))))
>( cons ( first '( a s k ))( cons 'juga '( s k )))
>( cons ( first '( a s k ))'( juga s k ))
>( cons '( a )'( juga s k ))
>( a juga s k )


Analogi lain seperti :


(2+4)*(5+6*3)    =(2+4)*(5+6*3)
        =(2+4)*(5+18)
        =(2+4)*(23)
        =(6)*(23)
        =138

Latihan LISP lanjutan posting kemarin.

Selain dengan fungsi FIRST dan REST, hasil yang sama juga bisa diperoleh dengan mengunakan fungsi CAR dan CDR. Entah kenapa saya diajarinya malah first & rest terlebih dahulu.

Baik, untuk latihan lisp kali ini, lakukan operasi CAR & CDR pada list - list berikut ini :

1. ( a b c )
2. ( x y z ( a b c ))
3. bakso
4. (( merah )(( putih )))
5. ( car ( car x ))
    jika x = list nomor 4

Sekaligus latihan fungsi CONS, biar rame.

Buatlah formula untuk membentuk list - list berikut ini dengan fungsi CONS :

1. ( aku ( sayang kamu ))
2. ( aku ( sayang ) kamu )
3. (( aku sayang ) kamu )
4. (( aku sayang kamu ))
5. ( aku sayang kamu )

jika :

    a. aku
    b. sayang
    c. kamu
    d. ( ) / NIL

    Contoh :
       
        ( cons a ( cons b ( cons c NIL ))) ........... <== bentuk formula yang diinginkan.
    untuk :
        ( cons 'aku ( cons 'sayang ( cons 'kamu NIL))) ..... eksekusi pada interpreter
   

Seperti game asah otak bukan ? Mari berlatih bersama....! jika terdapat hal yang salah silahkan hubungi saya :)

Contoh lain :
        ( cons 'a( cons ( cons 'b ( cons 'c NIL )) NIL ))

        Jika nilai - nilainya disubstitusi maka :
   
        (cons 'aku(cons(cons 'sayang(cons 'kamu NIL))NIL))

Tidak ada komentar:

Posting Komentar

Related Posts Plugin for WordPress, Blogger...