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
]]>