Windows用のSWI-Prologのlatets安定バージョン6.6.6 64ビットを使用しています。コードは次のとおりです。
start :-
new(Frame, frame('Test')),
send(Frame, open),
send(Frame, append, new(Pic, picture)),
send(Pic, height, 600),
send(Pic, display, new(_Ref1, text('This will disappear in 3 seconds', center, font(screen, roman, 16)))),
sleep(3),
send(Pic, clear),
sleep(3),
send(Pic, display, new(_Ref2, text('Good bye!', center, font(screen, roman, 16)))),
sleep(2),
send(Pic, clear).
コードは退屈なスタッフを処理します。ウィンドウと、その上に高さ 600px の画像キャンバスを作成します。3 秒で消えるテキストが表示され、2 秒後に 2 秒で消える新しいテキストが表示されます。
デバッグせずに実行すると、最初のテキストが 8 秒で消えてしまいます。
グラフィカルなデバッグで実行すると、コードは本来の動作をします (コードの説明を参照)。
だから私の心配は、同じコードの2つの異なる結果があるのはなぜですか、なぜコードをデバッグしないと正常に機能しないのですか?