Programming Language Concept – Functional Programming Languages

Functional programming adalah Program serba fungsi, yang artinya setiap persoalan diselesaikan dengan menggunakan fungsi.
Functional programming sendiri mulai dikembangkan tahun 1960an, dimotivasi oleh peneliti bidang artificial intelligence, symbolic computation, theorem proving, rule-based system, dan NLP.
Bahasa fungsional pertama adalah Lisp (McCarthy, 1960).
Memodelkan masalah komputasi sebagai suatu fungsi matematika, yang mempunyai input (domain) dan hasil atau output (range).

LISP Interpretation
Notasi lambda digunakan untuk menentukan fungsi dan definisi fungsi.
Ekspresi disusun dalam notasi Cambridge-prefix.
Contoh: (+ 3 2) maka akan menghasilkan nilai 5
Operasi aritmatika:
(+) → 0
(+ 5) →5
(+ 5 4 3 2 1) →15 // maksud nya 5+4+3+2+1 = 15
(*)→1
(*5) →5
(* 1 2 3 4 5) →120 // maksud nya 1*2*3*4*5 = 120
Contoh lain: (+ (* 5 4) (− 6 2) //maka akan menghasilkan (5 * 4) + (6 − 2) = 24

Variable Global
Didefinisikan dengan menggunakan fungsi define.
Contoh: (define f 120)
Evaluasi ekspresi
f→120
(+ f 5) → 125
(f) →error, karena memiliki kurung tapi tidak melakukan sebuah operasi
5 →5
#f→false
#t→true

Special Form: DEFINE
(define warna (quote (merah kuning hijau)))
(define warna ’(merah kuning hijau))
(define x f) 120
(define x ’f) x berisi simbol f
(define warna ’ merah)
(define warna merah) error, karena merah bukanlah suatu variable yang memiliki suatu isi

Evaluasi proses dari DEFINE berbeda, parameter pertama tidak akan di evaluasi. Paramete kedua akan di evaluasi, dan terikat pada parameter pertama.

Output Tools
Biasa nya tidak dibutuhkan, karena interpreter selalu menampilkan hasil dari fungsi yang di evaluasi pada top level (tidak nested).
Explicit input dan output bukan bagian dari fungsional programming model murni, karena input operasi merubah kondisi program dan output operasi adalah side effects.

PLT Scheme memiliki dua tools utama
-MzScheme : the core compiler, interpreter, and run-time system
-DrScheme : the programming environment

DrScheme memiliki beberapa variant. Untuk menggunakan Scheme
standar:
Pilih Module (Choose Language— Module)
Definisikan #lang scheme pada definition area.

Tail Reculsion
Operasi disebut tail recursion jika di panggil reculsive dan pada akhir dari fungsi operasi. Fungsi Tail reculsive dapat di convert secara otomatis oleh compiler untuk iterasi dengan membuat nya cepat.
Scheme language definisi membutuhkan konversi scheme language system all tail reculsive fungsi untuk menggunakan iterasi.

Leave a Reply

Your email address will not be published. Required fields are marked *