# notación postfix (o rpn: reverse polish notation) los operadores van después de los operandos, y todo funciona con una pila (stack) por ejemplo, para sumar dos números: ``` 3 4 + ``` leyendo de izquierda a derecha: * primero se hace "push" al 3 * luego se hace "push" al 4 * el operador + hace "pop" dos veces, suma los valores, y hace "push" al resultado tres números: ``` 3 4 2 + + ``` nota: el primer operador + realiza la suma entre 4 y 2, y el segundo operador + realiza la suma entre ese resultado y 3. otra posibilidad: ``` 3 4 + 2 + ``` # operadores de stack * pop: saca (y descarta) el elemento de arriba de la pila * swp: intercambia los dos elementos superiores en la pila * dup: duplica el elemento superior en la pila * ovr: copia el segundo elemento de la pila, y colócalo hasta arriba * rot: quita el tercer elemento de la pila, y colócalo hasta arriba # rutinas con firth firth es una calculadora rpn con fracciones: => https://git.sr.ht/~rabbits/firth firth el operador . imprime el estado de la pila ## tiempos convierte (minutos, segundos) a una cantidad de segundos. en el ejemplo, son 8 minutos, 49 segundos: ``` 8 49 swp 60 * + . resultado: 529 ``` convierte (minutos, segundos) correspondientes a un "paso" min/km, a una velocidad km/hr: ``` 4 30 swp 60 * + 3600 swp / . resultado en modo dec: 13.3333 (km/hr) ``` convierte una velocidad km/hr, a un "paso" min/km ``` 14 3600 swp / 60 / . resultado en modo dec: 4.285714 min/km ``` o para obtener minutos y segundos: ``` 14 3600 swp / dup 60 / swp 60 % . resultado en modo mix: 4&2/7 17&1/7 ( 4'17" min/km) ``` ¿se nota que me gusta el {running}? # herramientas firth, una calculadora rpn con fracciones: => https://git.sr.ht/~rabbits/firth firth uxn, una máquina virtual basada en pilas => https://wiki.xxiivv.com/site/uxn.html uxn ## llega(n) aquí: => ./apuntes.gmi {apuntes}