Fakultas Ilmu Komputer UI

Commit 7e879866 authored by Ari Nugraha's avatar Ari Nugraha
Browse files

update README

parent b3881fba
......@@ -9,6 +9,57 @@ Modified by :
- Ari Angga Nugraha - Faculty of Computer Science, Universitas Indonesia
Penjelasan :
Lambda Calculus merupakan bahasa pemrograman universal paling sederhana yang ada di dunia. Lambda calculus diperkenalkan oleh Alonzo Church pada tahun 1930-an. Lambda calculus memanfaatkan aturan transformasi untuk melakukan operasi
Aturan pada lambda calculus
1. Beta Reduction
```
= (λx.(λy.x))z
= (λy.x)[x := z]
= (λy.z)
```
2. Alfa Reduction
```
= (λx.(λy.x))y
bisa diubah menjadi
= (λx.(λy1.x))y
```
Pada program ini saya melakukan perubahan supaya saat user memasukkan input berupa angka angka dan juga operas + atau * akan dilakukan perhitungan berdasarkan Church Numeral
Contoh :
```
λ 1+2
λ λy x. y (y (y x))
```
Langkah :
1. Angka 1 akan dirubah menjadi Church Numeral menjadi
```
(λs z . s z)
```
2. Simbol + akan dirubah menjadi Church Numeral menjadi
```
(λw y x. y (w y x))
```
3. Angka 2 akan dirubah menjadi Church Numeral menjadi
```
(λs z . s (s z))
```
Lalu ketiga string akan digabung dengan operasi ++ dan Lambda Interpreteur akan bekerja mereduksi gabungan string tersebut dengan Beta Reduction dan juga Alfa Reduction sehingga akan menghasilkan angka 3 dalam bentuk Church Numeral yaitu
```
(λs z . s (s (s z)))
```
Original README :
# Lambda Calculus
[![Build Status](https://travis-ci.org/sgillespie/lambda-calculus.svg?branch=master)](https://travis-ci.org/sgillespie/lambda-calculus)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment