Я пытаюсь создать функцию, которая отбрасывает первые n элементов списка:
let rec drop n h =
if n == 0 then h else (drop n-1 (match h with a::b -> b));;
Это дает:
Characters 43-49:
if n == 0 then h else (drop n-1 (match h with a::b -> b));;
^^^^^^
Error: This expression has type 'a -> 'b but is here used with type int
Что здесь не так? Это мой первый день в OCAML (с функциональным программированием в целом), я просто следую инструкциям и учебникам в Интернете. Я понятия не имею, что означает это сообщение.
Кроме того, это часть более крупного домашнего задания, которое не требует использования Let, кроме определений функций, и не требует дополнительных библиотек