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