Я хочу посчитать, сколько "ты" в списке.Примером вызова функции может быть
countu(["u"; "a"; "x"], 0);;
:-int = 1
Код, который у меня есть:
let rec countu = fun(x, y) ->
if List.length (List.hd x) == 0 then y
else if List.hd x == "u" then countu(List.tl x, y+1)
else countu(List.tl x, y);;
Я понимаю, почему у меня проблема.Окамл хочет получить список, но поскольку я сравниваю его со строкой, он превращается в строку.Это также рассердится, когда я вспомню countu с y + 1, потому что, опять же, он хочет неуказанную единицу вместо целого числа.Как мне обойти это.Я хочу, чтобы подпись выглядела как
val countups : string list * int -> int = <fun>