中置記法の数式を後置記法に変換する方法を見つけました。(http://en.wikipedia.org/wiki/Shunting-yard_algorithm)では、結果の式を解釈するためにどのようにコーディングする必要がありますか?
これが私の考えです:
オペランドのみの式の場合:
- 形式operand-operand-operatorに従うオブジェクトのセットを探します。
- 演算子の計算規則を2つのオペランドに適用します。
- オブジェクトのセットを、計算の結果である1つのオペランドに交換します。
関数(正弦、絶対値、符号など)を持つ式の場合
- 形式operand-operand-...-operatorに従うオブジェクトのセットを探します。
- オペランドの数は、関数に渡すために必要なパラメーターの数によって異なります。例えば:
- サイン-1つのパラメーター(鋭角)
- power-2つのパラメーター(数値mのn乗)
- 3x3マトリックス-9つのパラメーター
- オペランドの数は、関数に渡すために必要なパラメーターの数によって異なります。例えば:
- 私が上で述べた他のことは何でもしなさい。
私は今、自分のアイデアをコードに実装するための環境がない状況にあります。そのため、私は抽象的な話しかできません。
このアイデアは可能かどうか?改善の余地がある場合は、それらに注意してください。参考資料も歓迎します。
コードを提示する場合は、コードを誰もが理解できる言葉に変更してください。例えば:
変化する:
for (var i:int = 0; i < rpn.length; i++) {
if ("1234567890.".indexOf(rpn[i]) != -1) {
// do something...
}
}
の中へ:
for every element in the postfix result,
if the element is a number,
do something...
end if
end for
ただし、 end...はオプションです。
ありがとう!