電卓のようなもの
(もっとネタ臭を醸し出した書き出しをここに書きたいのだが、できないので保留)
Forth といえば逆ポーランド記法、逆ポーランド記法といえば Forth ですが、Forth で中置記法で数式を書く事もできます。
まず、四則演算のオペレータを上書き定義します。上書きするのはその方がカッコイイからです。
: readnum bl parse evaluate ; : + readnum + ; : - readnum - ; : * readnum * ; : / readnum / ; : % readnum mod ;
あと、= で、表示と改行をするようにします。
: = . cr ;
これだけで、中置記法で数式が書けるようになります。
1 + 1 = \ => 2 2 - 3 = \ => -1 4 * 5 = \ => 20 67 / 8 = \ => 8 90 % 11 = \ => 2 12 + 13 + 14 = \ => 39 15 * 16 * 17 = \ => 4080
ただし、数字と演算子の間に空白が必要です。また、加減と乗除の優先順位は同じです。
1 + 2 * 3 = \ => 9 4 * 5 + 6 = \ => 26
変数も使えます。
7 value x x * x = \ => 49