質問
リストを作成しようとしています オズ 次のコードを使用してください。
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
所属していません StackOverflow