0

この Mozart オンラインコンパイラでこの階乗関数を実行しようとしているとき

解析エラーが発生しました!

    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}}

このオンラインコンパイラでこのコードを実行するにはどうすればよいでしょうか。

4

1 に答える 1

0

あなたのコードは Oz scriptです。インタラクティブな 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
于 2014-12-29T20:54:23.460 に答える