我想做这样的事情:
fun f () =
let
fun a() = b()
and
fun b() = a()
in
()
end
其中a和b是明智的相互递归函数。但是,这给出了:
Error: syntax error: replacing AND with SEMICOLON
有没有办法做到这一点?
答案 0 :(得分:9)
SML中相互递归函数的声明由fun ... and ...
块标记:
fun f () =
let
fun a() = b()
and b() = a() (* There is no 'fun' keyword before b() *)
in
()
end