Con forth, aprendiendo con Starting Forth, Thinking Forth para filosofía e Introducción a Forth en castellano. https://www.softsynth.com/pforth/pf_ref.php Lenguaje parco, mínimo, austero. Este código resuelve cuadráticas: : sqrt -1 tuck do 2 + dup +loop 2/ ; : square dup * ; : dis swap square -rot ; : d> depth 1- roll ; ( consume from data fifo) : d@ depth 1- pick ; ( peek from data fifo) : quad- d> d@ negate d@ d> * d> d@ 4 * * - sqrt - d> 2* / ; : quad+ d> d@ negate d@ d> * d> d@ 4 * * - sqrt + d> 2* / ; 2 7 5 quad+ . 2 7 5 quad- . cr Salida: -1 -3 ¿De qué va todo esto? Forth tiene una pila, donde dejas valores, y va operando según lee valores de la pila. introduce 2 3, te deja 2 y 3 en la pila. 2 3 Introduce +, lo suma, y deja 5 en la pila + Con .s sacamos el contenido de la pila: .s 5 Para definir funciones, es entre : y ; : square dup * ; Esto eleva al cuadrado lo que metas en la pila. 5 dup .s 25 Dup: duplica un item 5 dup .s 5 5 *: multiplica 5 5 * .s 25 Hay otras funciones como swap, que intercambia: 1 2 swap .s 2 1 O que rota el tercer valor y lo deja el primero: 1 2 3 rot .s 2 3 1 Lo vas pillando. Es gimnasia mental casi, como el viejo Brain Training de la DS, o usar lápiz y papel como dicen los expertos padagogos. Finalmente, volvamos al código. : sqrt saca la raíz cuadrada entera más próxima a un valor, y : dis saca el discriminante +-(b^-4ac) Es para el novato? No, es para cualquiera. Piensa en el programa que vayas a hacer como bloques de lego, no trates de usar la pila de un bloque, es decir, primero vete por pasos. No pienses programar como en Java, C o demás. Crea algo como: : cuadra2 dup * swap dup * ; : suma + ; : suma_cuadrados cuadra2 suma ; 2 5 suma_cuadrados .s ; 29 Para ver su potencia 'hacker', hay hasta sistemas operativos en Forth. https://duskos.org Y tambien juegos de texto, Sokoban, clientes gopher en algunos con soporte de red, correo... Es obsoleto? Puede. Pero con Forth podrias programar una aventura y jugarla en sistemas muy desfasados, cosa que igual es probable debido al desabastecimiento climatico o de redes totalmente atacada dejando solo una velocidad de 32KBPS en un ciberataque. Aguantaria Python, C con mil dependencias en Unix para algo como SDL2, y ni hablar de NPM? Ni locos. Forth esta ahi. Lo mismo con lenguajes universales para aventuras como inform6, y correran donde sea. Sokoban en Forth: http://www.murphywong.net/hello/sokoban.zip Más cosas: http://www.murphywong.net/hello/forth.htm