0

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

例如:

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

4

1 回答 1

0

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

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

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

于 2014-11-05T10:40:56.800 回答