55 lines
1.2 KiB
Text
55 lines
1.2 KiB
Text
fulfill_requirement '3+4*2/(1-5)^2^3'
|
|
3 4 2 * 1 5 - 2 3 ^ ^ / +
|
|
|
|
shunt_yard_parse'3*)2+4)'
|
|
Check your parens!
|
|
|
|
shunt_yard_parse'3*(2+4'
|
|
Check your other parens!
|
|
|
|
algebra_to_rpn'1+x*(3+x)'
|
|
discarding invalid token x
|
|
discarding invalid token x
|
|
┌─┬─┬─┬─┬─┐
|
|
│1│3│+│*│+│
|
|
└─┴─┴─┴─┴─┘
|
|
|
|
NB. Boxed form useful for evaluation
|
|
algebra_to_rpn'0+666*(1+666*(2+666*(3)))' NB. polynomial evaluation.
|
|
┌─┬───┬─┬───┬─┬───┬─┬─┬─┬─┬─┬─┬─┐
|
|
│0│666│1│666│2│666│3│*│+│*│+│*│+│
|
|
└─┴───┴─┴───┴─┴───┴─┴─┴─┴─┴─┴─┴─┘
|
|
|
|
1 fulfill_requirement'3 + 4 * 2 / ( 1 - 5 ) ^ 2 ^ 3'
|
|
OUTPUT queue 3
|
|
OPERATOR pop
|
|
OUTPUT queue
|
|
OPERATOR stack +
|
|
OUTPUT queue 4
|
|
OPERATOR pop
|
|
OUTPUT queue
|
|
OPERATOR stack *
|
|
OUTPUT queue 2
|
|
OPERATOR pop *
|
|
OUTPUT queue *
|
|
OPERATOR stack /
|
|
OPERATOR stack (
|
|
OUTPUT queue 1
|
|
OPERATOR pop
|
|
OUTPUT queue
|
|
OPERATOR stack -
|
|
OUTPUT queue 5
|
|
OPERATOR pop -
|
|
OUTPUT queue -
|
|
OPERATOR pop (
|
|
OPERATOR pop
|
|
OUTPUT queue
|
|
OPERATOR stack ^
|
|
OUTPUT queue 2
|
|
OPERATOR pop
|
|
OUTPUT queue
|
|
OPERATOR stack ^
|
|
OUTPUT queue 3
|
|
OPERATOR pop ^ ^ / +
|
|
OUTPUT queue ^ ^ / +
|
|
3 4 2 * 1 5 - 2 3 ^ ^ / +
|