filter (("JavaScript" `elem`) . tags) posts
El no determinismo es una característica fundamental de la programación lógica que permite a los programas producir cero, uno o más resultados ante un único objetivo. Si bien actualmente muchos patrones de programación propios del paradigma funcional –como el orden superior, la currificación o las mónadas– han sido ampliamente adoptados en la mayoría de lenguajes de programación modernos, no ocurre lo mismo con la programación lógica. En parte, esto es debido a que estos mecanismos inherentes del paradigma lógico no se materializan de forma tan clara o tangible en otros lenguajes. Sin embargo, una computación no determinista puede ser fácilmente modelada en cualquier lenguaje como un programa que produce una lista de resultados. Además, estas computaciones no deterministas pueden enlazarse de forma sencilla. El propósito de este artículo es tratar de mostrar cómo aprovechar una de las principales características de la programación lógica, el no determinismo, fuera de este marco de programación para simplificar la implementación de funciones que pueden producir múltiples resultados.
Un analizador sintáctico es un programa que analiza cadenas de símbolos y las transforma en algún tipo de representación más estructurada. Por otra parte, en programación funcional una mónada es una estructura que representa una forma de computación. Las mónadas favorecen la programación con efectos de forma genérica, y el análisis sintáctico es uno de los muchos problemas que ayudan a simplificar.
En este artículo se proporciona una descripción general de los conceptos fundamentales sobre el análisis sintáctico basado en las interfaces de funtor, funtor aplicativo y mónada.