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