Как написать правильную процедуру в Оз?

Я очень новичок в Оз, так что извините, если это несколько просто. Следующий код для вычисления площади, диаметра и длины окружности не работает. Выдает ошибку "Недопустимая арность в приложении". Я пытался настроить код разными способами, но часто получаю какую-то ошибку.

Вот код:

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

Кто-нибудь знает, что может быть не так?

Благодарю вас!


person Nora    schedule 13.10.2017    source источник


Ответы (1)


Проблема возникает из-за того, что Browse ожидает только один аргумент (у него «арность 1»), а вы даете ему 3 аргумента.

Попробуйте вместо этого вызвать {Browse (Pi Area Diameter)}, чтобы объединить 3 разных аргумента в один кортеж. Другая возможность - вместо этого вызвать Browse 3 раза.

person francoisr    schedule 18.10.2017