2011-11-12 57 views
6

我想在OCaml中有2個不同的遞歸函數,其中每個函數都可以調用另一個函數。它不起作用,因爲被宣佈爲1st的那個不能調用被宣佈爲2nd的那個。如果沒有將兩個函數合併爲1,有什麼辦法可以使它工作嗎?如何使2個函數在OCaml中互相呼叫

回答

14

這是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)