Prolog es principalmente un lenguaje dirigido a problemas lógicos, especialmente de la IA y los campos lingüísticos. Haskell es más un lenguaje de propósito general.
Prolog es un lenguaje declarativo (lógico), lo que hace que sea más fácil indicar problemas lógicos en él. Haskell es un lenguaje funcional y, por lo tanto, se adapta mucho mejor a los problemas de cómputo.
Wikipedia sobre la programación declarativa:
En informática, declarativa programación es un paradigma de programación que expresa la lógica de un cálculo sin describir su flujo control. Intenta minimizar o eliminar los efectos secundarios por , describiendo lo que el programa debería lograr , en lugar de describir cómo para lograrlo. Esto es en contraste con la programación imperativa , que requiere una descripción detallada del algoritmo ejecutada .
La programación declarativa consideran programas como teorías de un lógica formal, y cálculos como deducciones en ese espacio lógica. La programación declarativa se ha convertido recientemente en un interés particular en , ya que puede ser muy útil simplificar la escritura de programas paralelos.
Wikipedia sobre la programación funcional:
En informática, funcional programación es un paradigma de programación que trata cálculo como la evaluación de funciones matemáticas y evita datos de estado y mutables. Es enfatiza la aplicación de las funciones , en contraste con el estilo de programación imperativa , que enfatiza los cambios de estado. La programación funcional tiene sus raíces en el cálculo lambda, un sistema formal desarrollado en la década de 1930 a investigar la definición de función, la aplicación de función y la recursión. Muchos lenguajes de programación funcionales se pueden ver como adornos en el cálculo lambda .
En resumen un lenguaje declarativo declara un conjunto de reglas acerca de qué productos deben ser el resultado de que los insumos y utiliza esas reglas para deducir una salida de una entrada, mientras que un lenguaje funcional declara un conjunto de funciones matemáticas o lógicas que definen cómo la entrada se traduce a la salida.
En cuanto a la cuestión ha añadido: ninguno, que yo sepa, pero usted puede translate Haskell a Prolog, o implement Prolog en Haskell :)
Esa pregunta adicional es buena por sí misma. Si hay alguna forma de transferir la respuesta de gknauth a una nueva pregunta, debe volver a formularla para que ambos tengan sus propias respuestas de alta calidad. –
Eche un vistazo a la implementación KiCS2 del lenguaje Curry, un dialecto de Haskell que admite programación lógica desde cero. http://www-ps.informatik.uni-kiel.de/kics2/ & https://jeltsch.wordpress.com/2013/04/27/a-taste-of-curry/ –