2011-11-12 15 views
6

Chcę mieć 2 różne funkcje rekursywne w OCaml, gdzie każdy 1 może połączyć się z drugim. Nie działa, ponieważ ten, który jest zadeklarowany jako pierwszy, nie może wywołać tego, który jest zadeklarowany jako drugi. Czy jest jakiś sposób, aby to działało bez połączenia obu funkcji w 1?Jak wywołać 2 funkcje w OCaml

Odpowiedz

14

To co and jest dla:

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)