Tag Archives: Functional

Find real square roots in ML

3 May

Okay, pada kesempatan kali ini kita akan membahas functional programming ML untuk mencari nilai akar real dari sebuah bilangan a. Berikut adalah code-nya, silakan dilihat dan dipelajari:

fun findroot (a, x, acc) =
   let val nextx = (a/x + x) / 2.0
   in if abs (x-nextx) < acc*x then nextx
      else findroot (a, nextx, acc)
   end;

fun sqroot a = findroot (a, 1.0, 1.0E~10);

Kita dapat juga menulis fungsi tersebut dengan menggunakan metode seperti di bawah ini, sehingga terdapat fungsi di dalam fungsi. Check this out!

fun sqroot a =
   let val acc = 1.0E~10
   fun findroot x =
      let val nextx = (a/x + x) / 2.0
      in if abs (x-nextx) < acc*x then nextx
         else findroot nextx
      end
  in findroot 1.0 end;

Ya cukup sekian kodingan untuk menemukan atau find nilai real dari operasi akar atau square roots dari sebuah bilangan a di atas. Semoga dapat memberikan inspirasi bagi semua. Silakan mencoba, terima kasih.