]]> ]]>

Objective Caml 3.10.2

Версия реализации Objective CAML языка программирования ML

Версия Objective Caml, исправляющая ряд мелких багов предыдущей версии. Последняя из версий 3.10.x.

Примеры:

Hello, World! - ML (322):

print_endline "Hello, World!"

Числа Фибоначчи - ML (324):

Используется рекурсивный метод вычисления чисел Фибоначчи.

let rec fibonacci n =
  if n < 3 then
    1
  else
    fibonacci (n-1) + fibonacci (n-2)

let () =
  for n = 1 to 16 do
    Printf.printf "%d, " (fibonacci n)
  done;
  print_endline "..."

Факториал - ML (325):

Используется рекурсивное определение факториала. Значения факториалов, начиная с 13!, отрицательны из-за переполнения:

12! = 479001600
13! = -215430144
14! = -868538368
15! = -143173632
16! = -143294464
let rec factorial n =
    if n <= 1 then
      1
    else
      factorial (n-1) * n;;

let () =
  for n = 0 to 16 do
    Printf.printf "%d! = %d\n" n (factorial n)
  done;

Факториал - ML (326):

В этом примере используется вспомогательная функция fact, позволяющая реализовать хвостовую рекурсию.

let rec fact n accum =
    if n <= 1 then 
        accum
    else
        fact (n-1) (accum*n);;

let factorial n =
    fact n 1;;

let () =
    for n = 0 to 16 do
        Printf.printf "%d! = %d\n" n (factorial n)
    done;

Комментарии

]]>

blog comments powered by Disqus

]]>

Работа программистам