Почему я продолжаю получать переменную, не представленную в программировании страны Оз?

Я продолжаю получать сообщение об ошибке variable MainMirror Not introduced. Как мне это исправить?

fun {MainMirror Int}

    local Mirror in
        fun {Mirror Int Acc}
       if Int == 0 then Acc
       else
          Acc + {Mirror (Int div 10) (Acc mod 10)} end
        end
        {Mirror Int 0}
    end
end
{Browse {MainMirror 1234}}

oz
person Community    schedule 16.05.2015    source источник
comment
Если вы используете Emacs IDE: добавьте простой оператор declare (без аргументов) в начале вашего скрипта.   -  person wmeyer    schedule 16.05.2015
comment
о, спасибо!!! Это очень помогло   -  person    schedule 16.05.2015


Ответы (1)


Вы не объявили свою переменную MainMirror. На самом деле функция — это переменная в OZ. Вы можете объявить MainMirror, используя оператор 'declare' или 'local'.

declare
fun {MainMirror Int}

local Mirror in
    fun {Mirror Int Acc}
   if Int == 0 then Acc
   else
      Acc + {Mirror (Int div 10) (Acc mod 10)} end
    end
    {Mirror Int 0}
end
end
{Browse {MainMirror 1234}}
person obronchain    schedule 21.06.2015