Вот пример кода последовательности Фибоначчи, реализованного на языке программирования ML:
fun fibonacci(n) =
if n < 2 then
n
else
fibonacci(n - 1) + fibonacci(n - 2)
Этот код определяет функцию под названием fibonacci
, которая принимает целое число n
в качестве входных данных и возвращает n
-е число Фибоначчи. Функция использует рекурсию для вычисления числа Фибоначчи путем суммирования двух предыдущих чисел Фибоначчи.
Вот еще одна реализация, использующая сопоставление с образцом:
fun fibonacci(0) = 0
| fibonacci(1) = 1
| fibonacci(n) = fibonacci(n - 1) + fibonacci(n - 2)
В этой версии мы используем сопоставление с образцом для явного определения базовых случаев, а затем рекурсивно вычисляем число Фибоначчи.
А вот итеративная реализация с использованием цикла:
fun fibonacci(n) =
let
val mutable a = 0
val mutable b = 1
in
for i = 2 to n do
let
val temp = a
in
a <- b
b <- temp + b
end
done;
b
end
В этом коде мы поддерживаем две переменные a
и b
для хранения двух предыдущих чисел Фибоначчи. Мы используем цикл для итеративного вычисления числа Фибоначчи, обновляя значения a
и b
.