forthでfizzbuzz


概要

forthでfizzbuzzやってみた。

forthの定義済みワード

. スタックトップを取り出し表示
emit スタックトップを取り出し文字表示
.s デバッグプリント
cr 改行表示
space 空白表示
+ スタックトップと2番の加算
- スタックトップと2番の減算
* スタックトップと2番の乗算
/ スタックトップと2番の除算
mod スタックトップと2番の剰余
= スタックトップと2番の同値
< スタックトップと2番より小さい
> スタックトップと2番より大きい
max スタックトップと2番の最大
min スタックトップと2番の最小
dup スタックトップの複製
swap スタックトップと2番の交換
drop スタックトップの除去
over スタックの2番目の複製
rot スタックの上位3つを回転し,3番目をトップへ
and スタックトップと2番のBit AND
or スタックトップと2番のBit OR
invert スタックトップと2番のBit 反転
random 乱数(スタックトップ)

サンプルコード

: fizzbuzz 100 1 do i 3 mod 0 = i 5 mod 0 = or if i 3 mod 0 = if ." fizz" then i 5 mod 0 = if ." buzz" then else i . then cr loop ;

成果物

以上。