数学:: RPN.

RPNは、逆ポーランド式数学式評価のためのPerl拡張です。
今すぐダウンロード

数学:: RPN. ランキングとまとめ

広告

  • Rating:
  • ライセンス:
  • Perl Artistic License
  • 価格:
  • FREE
  • 出版社名:
  • Owen DeLong
  • 出版社のWebサイト:
  • http://search.cpan.org/owen/Math-RPN-1.08/RPN/RPN.pm

数学:: RPN. タグ


数学:: RPN. 説明

RPNは、逆ポーランド式数学式評価のためのPerl拡張です。 RPNは、逆ポーランド式数学式評価のPerl拡張です..Synopsis Math :: RPNを使用してください。 $ value = rpn(expr ...); @ array = rpn(expr ...); expr ...は、RPN式を含むスカラの1つ以上のスカラーまたはスカラーのリストです。 RPN式は、カンマで区切られた一連の数字や演算子です。 (カンマはスカラ内でのみ必要です)。RPN関数は、コンマ区切り値と演算子のセットとしてRPN式を含むSCLARSのスカラーまたはリストを取り、コンテキストに応じて結果またはスタックを返します。関数が配列コンテキストで呼び出された場合、それは残りのスタック全体を返します。スカラーコンテキストで呼び出されると、スタックのトップ項目が返されます。スカラーコンテキストでは、スタック上に複数の値が残っている場合は、警告がSTDERR.INに送信されます。エラーのイベントは、エラーメッセージがSTDERRに送信され、RPNはundefを返します。値と演算子の組み合わせ。オペレータではないトークンは、スタックにプッシュされる値であると仮定されています。リバースポーランド表記の説明はこの文書の範囲を超えていますが、それは数学の執筆方法として簡単に説明します。表現これは、人間が簡単に表現を理解する能力のわずかなコストで、括弧の整理およびシンプル化するという利点を排除するという利点がある。この評価者は、左から右への式を循環させることによって機能します。各トークンが見つかったので、オペレータのリストに対してチェックされます。それが一致する場合、スタックアンダーフローのためにチェックが実行されます。スタックはアンダーフローされていない場合、操作はスタックの上から必要な数のオペランドを削除することによって実行されます。その結果、スタックにプッシュされます。どの順序である演算( - 、/、%など)が右のオペランドとして扱われ、次の項目が左のオペランドとして扱われるように処理されます。したがって、「5,3、 - 」は-2ではなく2を得るだろう。トークンが既知の演算子のいずれにも一致しない場合、トークンは盲目的にスタックに押し出されます。その結果、予期しない結果が生じる可能性があります。たとえば、「5,3、grandma、+、*」という表現は15 *(3 + 0)が評価される方法であるため、15を生成します。すなわち、5はスタック、次いで3、次に「おばあちゃん」に押し付けられるであろう。次に評価され、3+の「おばあちゃん」が評価されます。 Perlは「おばあちゃん」を数値的に0にして、SO 3はスタックに戻されます。次に、*の上部の2つの項目を乗算し、STACKの2つの項目を掛けます。 ・Perl


数学:: RPN. 関連ソフトウェア