莫扎特函数解析错误

时间:2014-12-28 21:05:25

标签: factorial oz mozart

当我试图在这个莫扎特在线上运行这个阶乘功能时 complier

我得到了解析错误!

    declare
fun {Fact N}
   fun{Aux N Nmax FactNminus1}
      if N>Nmax then nil
      else (FactNminus1*N)|{Aux N+1 Nmax FactNminus1*N}
      end
   end
in
   {Aux 1 N 1}
end
{Browse {Fact 4}}

我如何在线compiler上运行这段代码!

1 个答案:

答案 0 :(得分:0)

您的代码是Oz 脚本。它可以在交互式Mozart IDE(Emacs)中使用。

在线编译器需要一个Oz 程序,即一个仿函数定义。试试这段代码:

functor
import
   Application
   System
define
   fun {Fact N}
      fun{Aux N Nmax FactNminus1}
         if N > Nmax then nil
         else (FactNminus1*N)|{Aux N+1 Nmax FactNminus1*N}
         end
      end
   in
      {Aux 1 N 1}
   end

   {System.show {Fact 4}}
   {Application.exit 0}
end