aboutsummaryrefslogblamecommitdiffstats
path: root/src/postfix.gmo
blob: 5ab589f54adb327bec733a2ee7054568739c578d (plain) (tree)

































































































                                                                                                                        
# 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}
Un proyecto texto-plano.xyz