Make Fibonacci Numbers in ML

3 May

Hari ini kita akan mencoba membuat fungsi yang akan mengembalikan fibonacci number atau urutan angka yang merupakan barisan fibonacci. Implementasi fungsi pada ML yang akan dibahas di bawah ini terbagi 2, menjadi fibonacci versi naive dan fibonacci yang lebih cepat atau faster.

Okay, berikut implementasi fibonacci versi naive:

fun fib 0 = 0
   |fib 1 = 1
   |fib n = fib(n-2) + fib(n-1);

Selanjutnya kita akan definisikan fungsi fibonacci yang implementasinya akan lebih cepat daripada fungsi di atas:

fun fib(prev, curr:int) = (curr, prev+curr);

fun fibpair (n) =
   if n=1 then (0,1)
   else fib(fibpair(n-1));

Fungsi di atas akan lebih cepat daripada sebelumnya walaupun kita tidak memakai tail recursive. Silakan mencoba dan berkreasi sendiri dengan fungsi fibonacci yang saya paparkan, terima kasih.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: