AttaLambda construye tipos y datos con lambdas sin tipar
El lenguaje se apoya en cálculo lambda puro y sin tipos: toda la computación son funciones unarias aplicadas entre sí, con sintaxis legible y comprobación de tipos en ejecución.
AttaLambda es un lenguaje pequeño construido sobre cálculo lambda puro y sin tipos. Toda la computación sale de funciones unarias y de aplicarlas entre sí; no hay tipos en el núcleo ni primitivas especiales. Lo que se añade por encima es sintaxis legible, números racionales exactos y comprobaciones de tipos en tiempo de ejecución. La entrada y la salida cruzan una frontera aparte, la del host que ejecuta el programa. La versión publicada es la 0.7.0.
Así se ve
El aspecto es familiar para cualquiera que haya tocado un lenguaje funcional. Un ejemplo del propio proyecto:
#lang attalambda
(def square x = (mult x x))
(print (map square (list 1 2 3 4)))
La salida es [1, 4, 9, 16], sin salto de línea final.
Debajo de esa sintaxis, todo son lambdas. Los tipos tampoco son una construcción aparte: se codifican con las mismas funciones, en la línea de la codificación de Church, donde un valor es la función que determina qué se puede hacer con él. De ahí el enunciado del proyecto, tipos y datos hechos de lambdas sin tipar.
El intérprete comprueba los tipos cuando ejecuta, no antes. La consecuencia práctica es que un programa arranca sin que nadie haya validado nada y el error aparece al tocar el dato, no al compilarlo. Para un lenguaje de este tamaño es una decisión coherente con el resto del diseño; para integrarlo en un pipeline, cambia dónde pones las pruebas.
El detalle de los racionales exactos también merece una línea: las operaciones aritméticas no pasan por coma flotante, así que una división da el valor exacto y no una aproximación.
El código está en GitHub y las notas de la 0.7.0 van publicadas aparte. El autor mantiene además otro repositorio, all_the_lambdas.
No hay cifras de rendimiento, ni comparaciones con otros lenguajes, ni una hoja de ruta hacia una versión 1.0. Para quien tenga curiosidad por ver cómo se sostiene un lenguaje entero sobre nada más que funciones, el ejercicio es entretenido y el intérprete se puede bajar hoy. Para meterlo en producción, de momento no hay nada que lo sostenga.

