質問

リストを作成しようとしています オズ 次のコードを使用してください。

local Loop10 Xs in
   proc {Loop10 I}
      Xs={List.append Xs I}
      if I == 10 then skip
      else
     {Browse I}
     {Loop10 I+1}
      end
      {Browse Xs}
   end
{Loop10 0}
end

Mozartコンパイラ コードが受け入れられていることを示していますが、閲覧ウィンドウが開くことはありません。私がやろうとしているのは、Ozでリストを作成することだけです。

コードの何が問題になっていますか?

役に立ちましたか?

解決

それがあなたが望むものであるかどうかはわかりませんが、xとy(包括的)の間のすべての整数のリストを作成するには:

local
   fun {Loop From To}
      if From > To
      then nil
      else From | {Loop From+1 To}
      end
   end
in
   {Browse {Loop 0 10}} % Displays: [0,1,2,3,4,5,6,7,8,9,10]
end

他のヒント

また、ブラウザウィンドウを取得しない理由は、この行のために評価スレッドが一時停止するためです。

Xs={List.append Xs I}

以前に言及したように、変数は一度しか割り当てられませんが、この行に間違っていることがあります。追加しようとします Xs 私に Xs まだバウンドされていません。したがって、スレッドは値が割り当てられるまで中断します Xs.

これをインタラクティブに入力してください:

declare Xs in
{Browse {List.append Xs [2 3 4]}}

何も起こらないように、ブラウザは開きません。これを入力してください:

Xs= [1]

以来 Xs バインドされて、最初の評価「スレッド」のロックを解除し、ブラウザがポップアップします。

PS回答が遅くなってすみません、私はちょうどOZに興味がありました:P

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top