paulsm4で指摘されているように、反復ごとにメモリを割り当てる無限ループを作成しました。最初の例は2番目の例の遅いバージョンです。印刷のため、最終的には。でエラーが発生しcouldn't re-allocate memory
ます。
それを分解しましょう:
1h
1!H
$!d
すべての入力をホールドスペースに保存しますd
。次のサイクルが開始されることに注意してください。
最後の2つのコマンドx; D
は、最後の行に達したときにのみ実行されます。これは、これらが実行される直前の状況です。
PS: wtf
HS: hell\nnautanki\nwtf
x
パターンスペースが空ではないため、それらを交換し、サイクルをD
削除して再開します。意志は新しいパターンスペースで実行され、結果は次のようになりますhell\n
。1!H
PS: nautanki\nwtf
HS: wtf\nnautanki\nwtf
つまり、反復ごとにメモリ使用量がわずかに増加します。
2行の入力では、状況は少し異なります。
PS: nautanki
HS: hell\nnautanki
になる:
PS: nautanki
HS: nautanki
など、無限に。
1行の入力で次のようになります。
PS: hell
HS: hell
それで:
PS:
HS: hell
そして、終了します。