Я пытаюсь разработать несколько циклов if-else для моего кода.
Мой предыдущий код был:
let rec appendtolist n list b =
let f x =
if ( b == 0 ) then x
else (append (appendtocode n (List.hd list)) (appendtolist n (List.tl list) (b-1)))
in
f list
;;
Модифицированный код с вложенными циклами:
let rec appendtolist n list b =
let f x =
if b < 0 then x
else if (b == 0) then appendtocode n (List.hd list) (b-1)
else appendtocode n (List.hd list) :: appendtolist n (List.tl list) (b-1)
in
f list
;;
Но я получаю эту ошибку:
This function is applied to too many arguments, maybe you forgot a `;'
Мой код кажется синтаксически правильным. Это правильный способ реализации вложенного цикла в OCaml ??
Я следовал примеру цикла if-elseif, найденного в сети, который работал нормально.
Мне нужно, наконец, вывести x
, то есть список, сформированный после всех рекурсивных вызовов appendtocode
и appendtolist
в этой функции.
Я что-то не так делаю ??
Пожалуйста, руководство.
Спасибо.