演算子表:
名称 | 表記 | 形式 | 説明 |
---|---|---|---|
算術関数 | sqrt exp log sin cos tan asin acos atan floor round ceil abs | n1 op | n1 を op(n1) の値で置き換える。 n1 が数値でない場合、n1 op を連結した形となる。 (例) 4 sqrt ⇒ 2 |
二項演算 | + - * / % pow max min | n2 n1 op | n2 n1 を (n2)op(n1) または op(n2,n1) の結果で置き換える。 n2 n1 が数値でない場合、n2 n1 op を連結した形となる。 (例) 2 3 pow ⇒ 8 |
代入 | = | f3 v2 f1 = | 式 f3 中の変数 v2 を 式 f1 に置き換えて再び評価する。 (例) x x * x 7 = ⇒ 49 |
級数 | sum | f4 v3 n2 n1 sum | 式 f4 中の変数 v3 を n2 から n1 まで変化させた総和を求める。 ただし、n2>n1 の場合、和は 0 となる。 内部的には、f4 v3 n2 = f4 v3 n2+1 n1 sum + に置き換えて再び評価する。 n2 n1 が数値でない場合、f4 v3 n2 n1 sum を連結した形となる。 (例) n n 1 10 sum ⇒ 55 |
乗積 | prod | f4 v3 n2 n1 prod | 式 f4 中の変数 v3 を n2 から n1 まで変化させた乗積を求める。 ただし、n2>n1 の場合、積は 1 となる。 内部的には、f4 v3 n2 = f4 v3 n2+1 n1 prod * に置き換えて再び評価する。 n2 n1 が数値でない場合、f4 v3 n2 n1 prod を連結した形となる。 (例) n n 1 10 prod ⇒ 3628800 |
反復 | for | f5 v4 n3 n2 o1# for | 式 f5 中の変数 v4 を n3 から n2 まで変化させて、各々に演算 o1# eval を施す。 ただし、n3>n2 の場合、スタックには何も積まれない。 内部的には、f5 v4 n3 = o1# eval f5 v4 n3+1 n2 o1# for に置き換えて再び評価する。 n3 n2 が数値でない場合、f5 v4 n3 n2 o1# for を連結した形となる。 (例) n n 1 10 dup# *# # for ⇒ 1 4 9 16 25 36 49 64 81 100 |
スタック操作 | swap | s2 s1 swap | s2 と s1 を入れ替える。 (例) a b swap ⇒ b a |
dup | s1 dup | s1 を再びスタックに積む。 (例) a dup ⇒ a a | |
del | s1 del | s1 を削除する。 (例) a b del ⇒ a | |
top | s1 top | s1 をスタックの先頭に移動する。 | |
clear | clear | スタックの内容を全て消去する。 | |
分離 | split | s1 split | s1 の末尾の未解決演算子を削除して、再び評価する。 |
連結 | # | s2 s1 # | s2 s1 # を連結した形でスタックに積む。 |
多重連結 | { } | { ... } | 対応する { } 間の各要素の末尾に # を付加し、# 演算子で連結する。 (例) { 1 2 + } ⇒ 1# 2# # +# # |
評価 | eval | s1# eval | s1# 中の各要素の末尾の # および # 演算子を削除して、再び評価する。 (例) 1 2 # +# # eval ⇒ 3 |
JavaScript | java | s1 java | s1 のJavaScript式を評価(with (Math) を掛けてある)して、その結果を再び評価する。 なお、スタックの文字列は、内部変数 s5 s4 s3 s2 s1 で得られる。 (例) random() java |
定義 | 変数名= | s1# op= | 以後文字列 op が出現した時に、s1# eval に置き換えて再び評価するようにする。 スタック中の定義式を削除するか、何か演算を施して op= を末尾以外にすれば、定義は無効となる。 多重定義の場合、以前の定義式はそのままスタックに残るが、例えば a という変数の定義式をまとめて消去したい場合、del# a== top clear# a=== top とすればよい。 なお、x 1 + x= の様な再帰的な定義をした場合、後で置き換えの際に無限ループに陥る事に注意。 |
Copyright (C) 1996-99, 2003 by H. Tanuma. tanuma_hideki@hotmail.com