Function 莫扎特Oz函数,不返回任何内容,但执行多条指令

Function 莫扎特Oz函数,不返回任何内容,但执行多条指令,function,recursion,oz,mozart,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,但是我不能,因为它被设置为返回最后一条指令,所以我得

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

例如:

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}
时,它会编译。

这些函数在Oz中称为“过程”。要定义过程,请使用“proc”关键字:

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

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