Mozart Oz函数只返回几条指令

时间:2014-11-05 09:30:43

标签: function recursion oz mozart

标题中的问题是,我如何创建一个不提供返回值的函数,但可以执行多个指令?

例如:

declare
fun {doStuff Tree}
   case Tree
   of bTree(T left:leaf right:leaf) then {Browse Tree}
   [] bTree (T left:T1 right:T2) then {doStuff T1} {doStuff T2}
end

在这种情况下,我想递归调用函数doStuff,但我不能,因为它设置为返回最后一条指令,我只是得到一个错误。但当我删除{doStuff T2}时,它会编译。

1 个答案:

答案 0 :(得分:0)

此类功能在Oz中称为“程序”。要定义过程,请使用“proc”关键字:

proc {DoStuff Tree}
    ...
    {DoStuff T1} {DoStuff T2\
end

注意:函数和过程的名称必须以大写字母开头。