[ stack ] is switch.arg ( --> [ ) [ switch.arg put ] is switch ( x --> ) [ switch.arg release ] is otherwise ( --> ) [ switch.arg share != iff ]else[ done otherwise ]'[ do ]done[ ] is case ( x --> ) [ say "Applying: " swap echo$ sp temp take temp take swap rot do temp put ] is apply ( $ x --> ) [ say "Pushing: " dup echo$ sp $->n drop temp put ] is isnumber ( $ --> ) [ temp copy echo cr ] is display ( --> ) [ nest$ witheach [ dup switch [ $ '+' case [ ' + apply ] $ '-' case [ ' - apply ] $ '*' case [ ' * apply ] $ '/' case [ ' / apply ] $ '^' case [ ' ** apply ] otherwise [ isnumber ] ] display ] temp take ] is rpncalc ( $ --> n ) $ "3 4 2 * 1 5 - 2 3 ^ ^ / +" rpncalc say "Result: " echo