Как заставить 2 функции вызывать друг друга в OCaml - PullRequest
8 голосов
/ 13 ноября 2011

Я хочу иметь 2 разные рекурсивные функции в OCaml, где каждая 1 может вызывать другую.Он не работает, потому что тот, который объявлен первым, не может вызвать тот, который объявлен вторым.Есть ли способ заставить его работать без объединения двух функций в 1?

1 Ответ

17 голосов
/ 13 ноября 2011

Вот для чего and:

let rec f x = if x < 2 then 1 else x * g (x - 1)
and g x = if x < 2 then 1 else x * f (x - 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...