MATH :: RPN

RPN is een PERL-extensie voor Reverse Polish Math Exection Evaluation.
Download nu

MATH :: RPN Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Owen DeLong
  • Uitgever website:
  • http://search.cpan.org/~owen/Math-RPN-1.08/RPN/RPN.pm

MATH :: RPN Tags


MATH :: RPN Beschrijving

RPN is een PERL-extensie voor reverse-evaluatie van Math Expression. RPN is een Perl-extensie voor reverse Polish Math Expression Evaluation.Synopsis Gebruik Math :: RPN; $ waarde = rpn (expr ...); @ array = rpn (expr ...); EXPR ... is een of meer scala's of lijsten van scalars die RPN-uitdrukkingen bevatten. Een RPN-expressie is een reeks cijfers en / of operators gescheiden door komma's. (Komma's zijn alleen vereist binnen scalars). De RPN-functie neemt een scalaire of lijst van scharen die een RPN-expressie bevatten als een reeks door komma's gescheiden waarden en exploitanten en het resultaat of de stapel retourneren, afhankelijk van de context. Als de functie in een array-context wordt genoemd, zal deze de volledige resterende stapel retourneren. Als het in een scalaire context wordt genoemd, zal dit het bovenste item van de stapel retourneren. In een scalaire context, als er meer dan één waarde op de stapel blijft, wordt een waarschuwing verzonden naar Stderr.in de gebeurtenis van een fout, wordt er een foutmelding naar Stderr verzonden en rijdt RPN UNDEF. Combinatie van waarden en exploitanten. Eventuele token dat geen operator is, wordt verondersteld een waarde te zijn die op de stapel wordt geduwd. Een uitleg van reverse Poolse notatie is buiten de reikwijdte van dit document, maar ik zal het kort beschrijven als een op een stapel gebaseerde manier van schrijven uitdrukkingen. Dit heeft het voordeel van het elimineren van de behoefte aan haakjes en het vereenvoudigen van het parseren voor computers versus normale algebraïsche notatie tegen een lichte kosten in het vermogen van mensen om de uitdrukkingen eenvoudig te begrijpen. Deze evaluator werkt door door de uitdrukking van links naar rechts te fietsen. Zoals elk token wordt aangetroffen, wordt het gecontroleerd tegen de lijst met operatoren. Als het overeenkomt, wordt een cheque uitgevoerd voor stack underflow. Als de stapel niet is gestoend, wordt de bewerking uitgevoerd door het vereiste aantal operanden van de bovenkant van de stapel te verwijderen. Het resultaat wordt vervolgens op de stapel ingedrukt. Operaties voor welke volgorde is significant (-, /,%, enz.) Worden verwerkt, zodat het bovenste item op de stapel wordt behandeld als de juiste operand, en het volgende item naar beneden wordt behandeld als de linker operand. Dus, "5,3, -" zou 2, niet -2 opleveren. Als het token niet overeenkomt met een van de bekende operators, wordt het token blindelings op de stapel geduwd. Als gevolg hiervan kan men onverwachte resultaten produceren. Bijvoorbeeld, de uitdrukking "5,3, oma, +, *" zou 15 zijn omdat 5 * (3 + 0) is hoe het eindigt geëvalueerd. Dat wil zeggen, 5 zou op de stapel worden geduwd, dan 3, dan "oma". Vervolgens wordt + geëvalueerd, dus 3+ "oma" wordt geëvalueerd. Perl evalueert "oma" om numeriek 0 te zijn, dus 3 wordt teruggedrongen op de stapel. Vervolgens vermenigvuldigt de * de bovenste twee items van de stapel , die 15, die wordt geproduceerd, die wordt teruggeduwd naar de stapel. REQUIRINGEN: · PERL-vereisten: · Perl


MATH :: RPN Gerelateerde software