如何在 Oz 中编写正确的程序?

How to write a proper procedure in Oz?

我是 Oz 的新手,很抱歉,如果这有点基础。以下用于计算圆的面积、直径和周长的代码不起作用。它会抛出一个错误 "illegal arity in application"。我尝试过以多种不同的方式调整代码,但最终往往会出现某种错误。

代码如下:

local
   Pi Area Diameter
   proc {Circle R}
      Pi = 355/113
      Area = R * R * Pi
      Diameter = R * 2.0
      {Browse Pi Area Diameter}
   end
in
   {Circle 2}
end

有人知道哪里出了问题吗?

谢谢!

问题是因为 Browse 只需要一个参数(它有 "arity 1")而你给了它 3 个参数。

尝试调用 {Browse (Pi Area Diameter)},将 3 个不同的参数合并为一个元组。另一种可能性是调用 Browse 3 次。