local MainSum in
fun {MainSum N}
local Sum in
fun {Sum N Acc}
if N==0 then Acc
else Acc+{Sum N-1 N*N}
end
end
{Sum 5 0}
end
end
end
当我尝试此代码时,它显示以下错误
%************************** syntax error ************************
%**
%** nesting marker expected as designator of nested function
%**
%** in file "exercise.oz", line 2, column 7
%** ------------------ rejected (1 error)
答案 0 :(得分:1)
您在我的计算机上编码工作...但您没有使用MainSum的参数
我相信你想做的事情:
local MainSum in
fun {MainSum N}
local Sum in
fun {Sum N Acc}
if N==0 then Acc
else Acc+{Sum N-1 N*N}
end
end
{Sum N 0}
end
end
{Browse {MainSum 5}}
end
可以使用更简洁的表示法编写,并使用终端递归!
local
fun{MainSum N}
fun{Sum N Acc}
if N==0 then Acc
else {Sum N-1 N*N+Acc}
end
end
in
{Sum N 0}
end
in
{Browse {MainSum 5}}
end