Pengaturan

Gambar

Lainnya

Tentang KASKUS

Pusat Bantuan

Hubungi Kami

KASKUS Plus

© 2024 KASKUS, PT Darta Media Indonesia. All rights reserved

fathan.nugrahaAvatar border
TS
fathan.nugraha
Cantiknya Lisp (update terus)
Pembukaan

Lisp, diambil dari singkatan LIST Processing adalah salah satu bahasa pemrograman yang usianya cukup tua (tahun 1958) namun masih dipakai sejumlah orang dan kelompok. Ciri khas bahasa Lisp adalah pemakaian kurung buka kurung tutup yang sangat banyak dan menggunakan prefix notation. Lisp termasuk interpreted language yang artinya mereka tidak perlu di compile dulu agar bisa berjalan, seperti python, ruby, javascript dan php.

Cara install Lisp
Ada banyak, banyak sekali dialek untuk Lisp. Dan setiap dialek mempunyai kelebihan dan kekurangan masing masing. Misalnya Arc, AutoLISP, Clojure, Common Lisp,Emacs Lisp, EuLisp, Franz Lisp. Tapi yang paling populer hanya segelintir, salah satunya Common Lisp. Jadi disini ane hanya menyediakan tutorial untuk menginstall CLISP.

Untuk Mac
Mac Agan harus punya homebrew dulu. Kalau belum punya harus diinstal dulu, ini commandnya

Code:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Nah kalau udah selesai baru instal Clisp-nya.

Code:
brew install clisp


Setelah itu Agan udah punya interpreter Lisp.

Spoiler for Screenshot:

Untuk Windows

1. Download dulu packagenya di http://sourceforge.net/projects/clisp/files/
2. Di unzip pakai winrar atau semacamnya di drive C:\
3. Jalankan command ini pakai command prompt

Code:
C:\clisp-2.49\install.bat


(pada waktu tutorial ini ditulis versi package yang terakhir adalah 2.49 jika Agan dapet yang lebih baru berarti command diatas harus mengikuti versinya agar commandnya jalan)
4. Buat file batch di C:\clisp.bat, isinya

Code:
cd c:\lisp\workingdir
c:\clisp-2.49\lisp -B "C:/clisp-2.49/" -M "C:\clisp-2.49\lispinit.mem"


5. Setelah disave, jalankan file batch itu untuk memulai CLISP.

(sumber : [url]http://www.cs.ubbcluj.ro/~gabis/plf/Lab/ResurseLab/CLisp/Using%20and%20Installing%20CLISP.htm[/url])

Untuk Linux
Untuk Ubuntu jalankan command dibawah ini

Code:
sudo apt-get install clisp


Untuk Centos jalankan command dibawah ini

Code:
yum install clisp


Sudah diinstal gan? Oke, lanjut.

Prefix Notation

Notation adalah cara untuk mengekspresikan sebuah ekspresi. Waktu kita sekolah kita sering belajar matematika. Biasanya ibu guru memulai dari memberi contoh operasi yang paling sederhana misalnya 1 + 1. 1 + 1 itu memakai inflix notation karena operator (+) diletakan diantara operands (1 1). Dan bahasa pemrograman yang memakai inflix notation ini sangatlah banyak, tapi Lisp tidak termasuk. Dia memakai prefix notation, yaitu operator berada didepan lalu baru operands. Jadi jika buguru SD kita tadi adalah programer lisp dan terobsesi dengan lisp maka dia akan menunjukan contoh di papan tulis (+ 1 1). Untuk yang belum pernah nyoba prefix notation coba buka CLISP yang Agan instal tadi, lalu tulis (+ 1 1) akan ada kembalian hasil 2. Operator yang lain juga bisa dipakai kok, kayak -, *, /.
Terus kalau operandnya lebih dari 2 gimana gan? Misalnya nih di inflix notation

Code:
> 2 * 10 + 5
25


Kalau di prefix notation jadi

Code:
> (+ (* 2 10) 5)
25


(bonus : selain inflix dan prefix ada juga postfix notation.)

List
List adalah kumpulan atom.
Cara membuat list :

Code:
> (list 1 2 3)
(1 2 3)


atau

Code:
> ‘(1 2 3)
(1 2 3)


List diatas berisi angka 1, 2 dan 3. List juga bisa berisi list lain, misalnya:

Code:
> (list 1 2 (list 3 4 5))
(1 2 (3 4 5))


Ada banyak cara untuk mengakses list yang sudah kita buat. Beberapa fungsi yang populer adalah car, cdr dan nth

Car adalah fungsi untuk mendapatkan element pertama.
Code:
> (car (list 3 4 5))
3


(fungsi first sama dengan fungsi car)

Cdr adalah fungsi untuk mendapatkan element kedua sampai terakhir.
Code:
> (cdr (list 3 4 5))
5


Nth adalah fungsi untuk mendapatkan element ke sekian.
Code:
> (nth 2 (list 3 4 5))
5
> (nth 0 (list 3 4 5))
3


Urutan pada fungsi nth adalah dimulai dari angka 0.

Dibawah ini ada beberapa fungsi dasar yang bekerja dengan list.

Length
Untuk mendapatkan panjang list.

Code:
> (length (list 3 4 5 6 7 10))
6


Listp
Untuk mengecek apakah list atau bukan. T jika benar list, nil jika bukan.

Code:
> (listp (list 1 2))
T
> (listp 300)
nil


Last
Untuk mendapatkan elemen terakhir dari sebuah list.
Code:
> (last (list 10 20 30 10 20 30))
30


Push
Menambahkan item baru ke dalam list dan diletakan di depan.

Code:
> (setf list-saya ‘(3 5 7 9))
(3 5 7 9)
> (push 10 list-saya)
(10 3 5 7 9)


Maksud kode diatas adalah membuat sebuah variable dengan nama list-saya dan valuenya list (3 5 7 9). lalu membuat list baru dengan anggota baru yaitu 10. Tapi jangan sampai terjebak mengira variabel list-saya menjadi (10 3 5 7 9) karena bahasa lisp adalah functional language maka list-saya tetap berisi (3 5 7 9). Coba deh

Code:
> list-saya
(3 5 7 9)


Tuh kan? Nah seandainya kita ingin mengedit list-saya agar berubah maka commandnya menjadi seperti ini

Code:
> (setf list-saya (push 10 list-saya))
(10 3 5 7 9)


Coba dicek lagi

Code:
> list-saya
(10 3 5 7 9)


Ini baru bener.

Pop

Code:
Mengeluarkan elemen pertama dari list.
> (setf list-saya ‘(3 5 7 9))
(3 5 7 9)
> (pop list-saya)
3
> list-saya
(5 7 9)


(sumber: Common Lisp Quick Reference, ANSI Common Lisp, On Lisp, Wikipedia)

Sekian dulu gan...

Ada yang mau nambahin? Atau ada yang punya kendala waktu nginstal? Atau ada yang mau ditanyain? Tanyain aja disini gan, barangkali saya atau agan lainya bisa menjawab. Silahkan ngobrol tentang Lisp disini, jangan OOT ya emoticon-Malu (S)
Kalau sempat ane update tiap hari gan.
Terimakasih untuk yang sudah baca.


emoticon-I Love Indonesiaemoticon-I Love Indonesia emoticon-I Love Indonesia
0
2.1K
5
GuestAvatar border
Komentar yang asik ya
Mari bergabung, dapatkan informasi dan teman baru!
Programmer Forum
Programmer ForumKASKUS Official
20.2KThread4.4KAnggota
Urutkan
Terlama
GuestAvatar border
Komentar yang asik ya
Ikuti KASKUS di
© 2023 KASKUS, PT Darta Media Indonesia. All rights reserved.