aboutsummaryrefslogtreecommitdiffstats
path: root/src/postfix.gmo
diff options
context:
space:
mode:
authorsejo <sejo@texto-plano.xyz>2021-05-27 16:18:05 -0500
committersejo <sejo@texto-plano.xyz>2021-05-27 16:18:05 -0500
commit3526ecf92b39c789c82c079283707e6a04493a64 (patch)
tree56edfc37e47683006543b5911ec98635b100de3b /src/postfix.gmo
parentfb33351d6213216969d718365a979a6954a6794b (diff)
downloadsitio-3526ecf92b39c789c82c079283707e6a04493a64.tar.gz
notas de postfix
Diffstat (limited to 'src/postfix.gmo')
-rw-r--r--src/postfix.gmo98
1 files changed, 98 insertions, 0 deletions
diff --git a/src/postfix.gmo b/src/postfix.gmo
new file mode 100644
index 0000000..5ab589f
--- /dev/null
+++ b/src/postfix.gmo
@@ -0,0 +1,98 @@
+# 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