Пролог - это в основном язык, ориентированный на логические проблемы, особенно из AI и лингвистических полей. Haskell - это скорее язык общего назначения.
Пролог является декларативным (логическим) языком, что облегчает формулирование в нем логических проблем. Haskell является функциональным языком и, следовательно, гораздо лучше подходит для вычислительных задач.
Википедия декларативного программирования:
В информатике декларативного программирования это парадигма программирования , который выражает логику вычисления без описания ее потока управления. Он пытается свести к минимуму или устранить побочные эффекты на , описывая, что программа должна выполнить, а не описывать, как идти о ее достижении. Это в отличие от императивного программирования , для которого требуется подробное описание алгоритма .
декларативного программирования рассматривать программы как теории формального логики, и вычисления в качестве вычетов в этом логическом пространстве. Декларативное программирование стало особенно интересным: интерес недавно, так как он может значительно упростить писать параллельные программы.
Википедия по функциональному программированию:
В информатике, функциональное программирование это парадигма программирования, которая рассматривает вычисление как оценки математических функций и избегает состояний и изменяемых данных. В нем подчеркивается применение функций , в отличие от стиля обязательного программирования , который подчеркивает изменения состояния. Функциональное программирование имеет свои корни в исчислении лямбда, формальная система , разработанная в 1930-х годах до , исследует определение функции, назначение функции и рекурсию. Многие функциональные языки программирования можно рассматривать как украшения для исчисления лямбда .
Короче декларативного язык объявляет набор правил о том, что результаты должны быть результатом каких входов и используют эти правила, чтобы вывести выход из входных данных, в то время как функциональный язык объявляет набор математических или логических функций, которые определяют как ввод переводится на вывод.
Что касается вопроса ДОБАВЛЕННОГО: никто, что я знаю, но вы можете либо translate Haskell в Пролог или implement Пролог в Haskell :)
Этот вопрос хороший сам по себе. Если есть какой-то способ передать ответ gknauth на новый вопрос, вы должны спросить его снова, чтобы у обоих были свои высококачественные ответы. –
Посмотрите на реализацию языка Curry KiCS2 - диалект Haskell, который поддерживает логическое программирование с нуля. http://www-ps.informatik.uni-kiel.de/kics2/ & https://jeltsch.wordpress.com/2013/04/27/a-taste-of-curry/ –