在OCaml中的模块中相互调用的函数

时间:2012-03-29 17:57:10

标签: recursion module call 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...

如果有人可以帮忙吗?

编辑:我理解为什么这是未绑定的,但我不知道如何修复它。

非常感谢!

最高

1 个答案:

答案 0 :(得分: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