filter (("Haskell" `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.