FORTH ゴルフに必要な知恵はすべて info で学んだ
というのは稍多げさですが、Gforth の info は充実していると思います。
ところで、key と key? は Gforth-0.6.2 と 0.7.0 で振る舞いが違うので、FORTH ゴルファーは気をつけましょう。
\ getchar.fs key \ キーボード入力を 1 文字読んでスタックに置き . \ スタックから 1 個取り出し整数として出力し cr \ 改行出力し bye \ 終了
% echo -n | gforth-0.6.2 getchar.fs -1 % echo -n | gforth-0.7.0 getchar.fs 4
\ isnoteof.fs key? \ キーボードから読み込めるか判定して真偽値 (true が -1、false が 0) をスタックに置く . cr bye
% echo -n | gforth-0.6.2 isnoteof.fs 0 % echo -n | gforth-0.7.0 isnoteof.fs -1
info には 0.6.2 も 0.7.0 も `Key' does not recognize the end of input.
と書いてあるので、文句を言える筋合いではありませんが。
追記:これは一体どういうことだ?
% echo -n | gforth-0.7.0 isnoteof.fs 0 % echo -n | gforth-0.7.0 isnoteof.fs -1 % echo -n | gforth-0.7.0 isnoteof.fs 0 % echo -n | gforth-0.7.0 isnoteof.fs 0 % echo -n | gforth-0.7.0 isnoteof.fs -1 % echo -n | gforth-0.7.0 isnoteof.fs -1