Чтобы вычислить факториал числа в OCaml, вы можете использовать несколько методов. Вот несколько примеров кода:
-
Рекурсивный метод:
let rec factorial n = if n <= 1 then 1 else n * factorial (n - 1)Этот метод использует рекурсию для вычисления факториала. Если число
nменьше или равно 1, оно возвращает 1. В противном случае оно умножаетnна факториалn - 1. -
Метод хвостовой рекурсии:
let factorial n = let rec factorial' acc = function | 0 -> acc | n -> factorial' (n * acc) (n - 1) in factorial' 1 nЭтот метод использует хвостовую рекурсию, которая позволяет избежать переполнения стека при больших входных данных. Он накапливает значение факториала в параметре
accдо тех пор, покаnне достигнет 0. -
Итеративный метод:
let factorial n = let result = ref 1 in for i = 2 to n do result := i * !result done; !resultЭтот метод использует цикл для итеративного вычисления факториала. Он инициализирует изменяемую ссылку
resultзначением 1 и умножает ее на каждое число от 2 доn.
Обратите внимание, что OCaml чувствителен к регистру, поэтому при написании фрагментов кода обязательно используйте правильные заглавные буквы.