Несвязанное значение в рекурсивной функции ocaml - PullRequest
0 голосов
/ 12 сентября 2018

Я пытаюсь создать функцию фильтра, которая получает функцию как параметр и список и возвращает другой список с результатом фильтрации.

let rec filter bool_func l r = 
    match l with
    | [] -> r
    | h::t -> if bool_func h then filter bool_func t (h::r)
    else filter bool_func t r in filter bool_func t [];;

1 Ответ

0 голосов
/ 12 сентября 2018

Ключевое слово in идет вместе с предыдущим let, чтобы создать локальное определение для использования в выражении, следующем за in. Таким образом, у вас есть локальное определение функции filter, за которым следует выражение filter bool_func t. И действительно, за пределами let нет значений (которые вы нам показываете) с именем bool_func или t.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...