Kalkulus Lambda adalah model komputasi yang berlandaskan prinsip fungsi M-chan (Matematika-chan), pertama kali di kemukakan oleh Alonzo Church pada awal 1930-an yang menjadi bagian penelitian beliau dalam pembuktian formal dasar matematika.
What da hell is Model Komputasi ?
Model komputasi merupakan kerangka kerja yang menjelaskan apa yang dilakukan sebuah fungsi / algoritme dalam menghasilkan nilai keluaran dari sebuah nilai masukan.
Ketika kita menerima nilai masukan 4, Bagaimana kita menghasilkan 6 ?
let y = (x) => x + 2
y(4)
atau juga
let y = (x) => x + (x/2)
y(4)
Fenomena banyak cara untuk memenuhi syarat nilai masukan dan keluaran ini disebut dengan undecidability.
Bagaimana bentuknya dalam kalkulus lambda ?
λx.(+ x 2) 4 = (+ 4 2) = 6
Penulisan notasi dengan operator pada awal operasi disebut notasi prefiks.
Notasi tersebut sama saja dengan
λx.(x + 2) 4 = (4 + 2) = 6
Kalkulus Lambda
Kalkulus lambda salah satu model komputasi fungsional, fungsional berarti komputasi disusun oleh set dan fungsi matematika.
Kalkulus Lambda memiliki 3 ekspresi:
E := x
| E1.E2
| λx.E1
- x , Variable
- E1.E2 , Aplikasi Fungsi
- λx.E1 , Abstraksi Fungsi
Rupa kode dalam bentuk tipe data.
type rec e =
| Variabel(int)
| Aplikasi(e,e)
| Abstraksi(int,e)
Variabel
Variable adalah nilai bilangan, seperti 1,2,3 dan seterusnya.
Abstraksi Fungsi
Abstraksi fungsi adalah cara kita membuat suatu fungsi.
λ(parameter).(badan fungsi)
λx.E1
λx, notasi melambangkan bagaimana kita membuat sebuah fungsi dengan parameterx.E1, eksprsi dari kalkulus lambda
Contoh
λx. (+ (* x 2) x)
λy. (- y 2)
Dalam bentuk kode
let f1 = (x) => (x * 2) + x
let f2 = (y) => y - 2
Aplikasi Fungsi
Aplikasi fungsi bagaimana kita menggunakan fungsi terhadap sesuatu nilai masuka atau ekspresi.
λx. (+ (* x 2) x) 4
= (+ (* 4 2) 4)
= ( + 8 4 )
= 12
Fungsi
λx. (+ (* x 2) x)diberikan masukan4.Parameter
xdan variabelxpada badan fungsi di ganti dengan4danλxdihapus karenaxsudah terganti, sehingga menghasilkan(+ (* 4 2) 4).Kita operasikan dari kurung terdalam yaitu
(* 4 2)menjadi( + 8 4 )dan dilanjutkan sehingga menghasilkan12.
Rupa dalam bentuk kode
let f = (x) => (x * 2) + x
f(4) // 12
Contoh
λa.(* a a) . λx.(+ x 3) . 4
Kita punya sebuah fungsi berparameter a dengan isi (* a a) dan diaplikasikan dengan (+ x 3) dan 4 ?
λa. (* a a) (+ x 3) 4
= (* (λx.(+ x 3)) (λx.(+ x 3)) 4
= (* (+ 4 3) (+ 4 3))
= (* 7 7)
= 49
Bila ditulis dalam bentuk kode
let fa = (a) => (a * a)
let fx = (x) => x + 3
fa(fx(4)) // 49
Penutup
Sekian dari tulisan ini semoga cukup memanaskan kepala and. Apabila penjelasan saya kurang dapat di mengerti, semoga video dibawah ini bisa membantu
#1 Pengantar | Kalkulus Lambda, Idiosemantik
Terima kasih.
Oldest comments (2)
Wah jadi lebih paham kalkulus lambda karena artikel ini, thanks engelstrassen dan M-chan!
Pusing dikit gak ngaruh. Makasih sensei 🔥