UtilContコンパイラ

UtilContのソースプログラムを入力して下さい。


入力の文法カテゴリ:
Expr(式) Decls (宣言 つまり、 変数 = 式; 変数 = 式; … ; 変数 = 式
出力にdo式を使いますか:
はい do式を使います いいえ `bindM`を使います

入力例(コピペして使って下さい):
foo = \ n ->
  begin
    setX 1;
    setY n;
    while getY () > 0 do
      begin
        val r = getX () in
        val n = getY () in
        begin
          if n==10 then break
          else if n==3 then
            begin
              setX r;
              setY (n-1);
              continue
            end
          else ();
          setX (r*n);
          setY (n-1)
        end
      end;
    getX ()
  end
;
bar = \ x -> begin     
	       setX 1;
	     label1:
	       if getX () > 100 then
	         goto label2
	       else ();
	       setX (getX () * 2);
	       goto label1;
	     label2:
	       getX ()
	     end
;
fact = \ n -> if n==0 then 1 else n*fact(n-1)



Koji Kagawa