Calculadora de pila
Una máquina de pila procesa instrucciones al apilar y desapilar valores en una pila interna. Un ejemplo sencillo de esto es una calculadora.
El argumento pasado a run(instructions) siempre será una cadena que contiene una serie de instrucciones.
El conjunto de instrucciones de la calculadora será el siguiente:
+: Extrae los últimos 2 valores de la pila, súmalos y coloca el resultado en la pila.-: Extrae los últimos 2 valores de la pila, resta el valor de abajo al que está en la cima y coloca el resultado.*: Extrae los últimos 2 valores, multiplícalos y coloca el resultado./: Extrae los últimos 2 valores, divide el que está en la cima entre el de abajo y coloca el resultado.DUP: Duplica (no multiplica por dos) el valor que está en la cima de la pila.POP: Extrae el último valor de la pila y descártalo.PSH: Se realiza cada vez que aparece un número como instrucción. Coloca el número en la pila.- Cualquier otra instrucción (por ejemplo, una letra) debe producir el valor "Invalid instruction: [instruction]"
Ejemplos
StackCalc("") ➞ 0
StackCalc("5 6 +") ➞ 11
StackCalc("3 DUP +") ➞ 6
StackCalc("6 5 5 7 * - /") ➞ 5
StackCalc("x y +") ➞ Invalid instruction: xNotas
- Si no hay instrucciones, el valor debe permanecer en 0.
- El valor de retorno de
get value()debe ser el valor que está en la cima de la pila.