gosub の限界まで呼び出すプログラム (プチコン 3.5.2)
1: option strict
2: option defint
3: var j = 1: gosub @p : end
4: @p if j == 16384 - 0 then ? : return
5: j = j + 1: gosub @p
これで run すると 4 行目の ? を実行して正常終了します。
4行目の ? を ? j に変えると 4 行目で stack overflow を起こします。
そこで 4行目を if j == 16384 - 2 に変えると ? 0 を実行できるようになります。
これで、? が j を表示するのに gosub 2 回分のスタックを消費することが分かります。
式の複雑さは影響しないみたい。
でも ? j, j にすると gosub 6 回分必要になります。
1そうだね プレイ済み