Implementación del combinator Y en el lenguaje sw-MLPL

Fuentes: Implementing the Y Combinator in the Eager Array Language sw-MLPL

El artículo técnico explora la implementación del combinator Y (o 'Sage Bird') en el lenguaje sw-MLPL, un sistema de programación basado en arrays que opera de forma estricta. A diferencia de los lenguajes lógicos o la familia APL, que resuelven la recursión mediante primitivas anónimas o iteración transicional, sw-MLPL requiere un enfoque específico para manejar la auto-referencia sin recurrir a la evaluación perezosa. El texto detalla cómo el combinator clásico diverge inmediatamente en un entorno estricto debido a la necesidad de evaluar la expresión antes de que la función sea llamada. La solución propuesta utiliza un 'applicative sage' que introduce una capa de retraso mediante una función parcial, permitiendo la recursión segura sin cambiar la naturaleza estricta del lenguaje. Se proporcionan ejemplos prácticos, como la implementación de factorial y fibonacci, que demuestran que la recursión práctica no requiere sintaxis de lambda ni evaluación perezosa. El artículo concluye que la fidelidad a la línea de diseño APL2 favorece la iteración de puntos fijos sobre arrays, manteniendo la predictibilidad del coste y la simplicidad del evaluador, en lugar de adoptar sintaxis de lambda que introduce complejidad innecesaria.