У меня проблемы с пониманием, почему я получаю синтаксическую ошибку для этой функции. Он возвращает int таким образом, что n_times (f, n, v) применяет f к vn раз. Например, n_times ((fun x-> x + 1), 50, 0) = 50. Если n <= 0, верните v. </p>
let rec n_times (f, n, v) =
(* YOUR CODE HERE *)
raise (Failure "Not implemented")
assert (n_times((fun x-> x+1), 50, 0) = 50)
Вот что я кодировал:
let rec n_times (f, n, v) =
(* YOUR CODE HERE *)
|n<=0 -> f v
|n>0 -> f v * n_times(f, n, v)
let f() = (Failure "Not implemented2")
let f() = assert (n_times((fun x-> x+1), 50, 0) = 50)
Я считаю, что для этой функции v умножается в n раз. Я правильно понимаю? Также я не понимаю, почему первая строка моего кода дает мне синтаксическую ошибку?