Мои занятия:
declare
class Collection
attr list
meth init
list := nil
end
meth put(X)
list := X|@list
end
meth get($)
if @list == nil then
nil
else
local X in
X = @list.1
list := @list.2
X
end
end
end
end
Мое тестовое использование:
declare
C = {New Collection init}
{C put(4)}
{C put(5)}
{Browse {C get}}
Ошибка:
%********************** static analysis error ******************* %** %** illegal number of arguments in object application %** %** Object: C %** Number found: 2 %** Expected: 1 %** in file "Oz", line 62, column 9 %** ------------------ rejected (1 error)
Строка 62 — это строка с надписью "Обзор"
Это потому, что Оз пытается использовать объектную процедуру как функцию, передавая аргумент результата? Если да, то в чем смысл функциональных методов? Как их использовать?