2012-03-29 51 views
3

相互调用的模块中我有一个关于ocaml的问题,我是一个初学者:-)功能,在OCaml的

这里是我想要做的一个例子:(我知道这是无感,但它不是我真正的代码,它只是一个例子)

let func a b = a 
let func2 a b = b 

let func_a a b = 
    if b < 0 then 
     func_b b a 
    else 
     func a b 

let func_b a b = 
    if a < 0 then 
     func2 a b 
    else 
     func_a b a 

的问题是: Unbound value func_b in the first "if" in func_a...

如果有人可以帮助?

编辑:我明白为什么这是解除绑定,但我不知道如何解决它。

非常感谢!

最大

回答

5

的关键词是mutually recursive functions

let func a b = a 
let func2 a b = b 

let rec func_a a b = 
    if b < 0 then 
     func_b b a 
    else 
     func a b 

and func_b a b = 
    if a < 0 then 
     func2 a b 
    else 
     func_a b a 
+0

谢谢。为我工作:-) – DCMaxxx 2012-03-29 18:17:09