Обсуждение:Prolog

Материал из Lurkmore
Перейти к навигации Перейти к поиску

Я думал, что название происходит от французского словосочетания, а в английском нет слова programmation.

Скорее так оно и есть, так как создатели языка - французы. В английской педивикии, кстати, указан именно такой вариант.

Эх, это был первый язык, на котором я кодил.

Про "не нужен" - не совсем так. Суть prolog в том, что у французов получилось доказать, что логическое программирование возможно в принципе. Как делать Prolog в CLISP - у Грэхема, видел как подобное сделать в питоне, на хаскеле почти ничего не надо делать.

Умножаю, как идея очень даже нужен. Многие вещи, кстате, намного проще писать. Просто реализация конкретно в прологе примитивная.
Хрень. Нужен только чтобы напрячь мозги, толку от него просто мизер. Особенно извращенными выглядять задания на прологе для подсчета факториала, сумм чисел от 1 до N и т.д. Хотя для задротов в качестве понта пойдет :-)
Нужен, ибо rule-based и в целом логический, что применяется во всяких экспертных системах в машинах вывода.
Во всяких экспертных системах применяется CLIPS (не путать с CLISP) made in NASA. И то кипеш подзаглох - в 2002-м мне "романтический научник" как раз подсунул свинью в виде диплома нащод экспертной системы на CLIPS (диплом-то сдал, благо CLIPS от СLISPa на вскидку отличается не сильно - смайлики сплошные, только заточен на rule-based искаропки... Недавно мантейнеры переписали его на... JAVA. C LANGUAGE INTEGRATED PRODUCTION SYSTEM... на JAVA... Этот мир обречен)
Но в основе многих систем лежит именно ПРОЛОГ. Наши быдлокодеры тоже пытались замутить программу управления Бурана на сишке, но как-то не попёрло. И лишь когда осилили ПРОЛОГ попёрла масть. С тех пор и используются его потомки вроде того же "ДРАКОНА". Да и вообще пример про факториал не к месту, поскольку для вычислений он и вовсе не предназначен (вычисления там через отдельные команды).

Кстати по Лиспу срача также когда-то хватало. Но окончательно смыть его в этом сраче, в оличие от ПРОЛОГА, не удалось.

Наследие Пролога

Операция сопоставления по образцу (pattern matching) во всех современных функциональных языках взята именно из Пролога. И возможно похожий на Пролог язык будет использоваться для запросов в интернете будущего, гуглите Semantic Web.

из недавнего вспомнился Swift с его "guard let a = b" внутри guard statements: это не оператор присваивания, а pattern matching.