Сопоставление с образцом — Prolog vs. Haskell

Это не вопрос домашнего задания, а вопрос руководства по подготовке к экзамену. В чем разница между сопоставлением с образцом в Prolog и Haskell?

Я провел некоторые исследования, и чтение теорий, лежащих в их основе, на самом деле не дает мне четкого понимания между ними. Я читал, что в Прологе сопоставление с образцом отличается, потому что он имеет возможность унифицировать переменные и, таким образом, иметь возможность делать выводы через разрешение и выдавать возможный ответ.

eg ?- [a,b] = [a,X]
   X = b

Теперь я не уверен, как отобразить сопоставление с образцом в Haskell.Я знаю, что тот же запрос, показанный выше в Прологе, не будет работать в Хаскеле, потому что Хаскель не может унифицировать, как Пролог. Я где-то помню, чтобы получить тот же ответ в Haskell, вы должны явно указать его через охранников.

Я знаю, что я довольно близок к пониманию этого, но мне нужен кто-то, кто разберет это для меня в стиле Барни, чтобы я мог ПОЛНОСТЬЮ понять это и объяснить 12-летнему ребенку. Это беспокоило меня в течение довольно долгого времени, и я не могу найти внятного объяснения.

Кстати, пример, показанный выше, был просто для того, чтобы показать вам, ребята, что я уже узнал и что я на самом деле пытаюсь найти ответ. Мой главный вопрос не относится к приведенным выше примерам, а скорее к полному пониманию разницы между ними.

35
задан false 10 February 2014 в 20:09
поделиться