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
x
dan variabelx
pada badan fungsi di ganti dengan4
danλx
dihapus karenax
sudah 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.
Top comments (2)
Wah jadi lebih paham kalkulus lambda karena artikel ini, thanks engelstrassen dan M-chan!
Pusing dikit gak ngaruh. Makasih sensei 🔥