Что более интересно или мощно: Карри, Меркурий или Пролог Лямбды?

Я хотел бы спросить Вас о том, от чего формальная система могла быть более интересна реализовать, царапают/перепроектируют.

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

Было бы замечательно, если некоторые из этих систем обеспечат большую часть выразительного питания и краткости современных академических расследований в логике и ее отношении с вычислительными моделями.

Что Вы рекомендовали бы изучить, по крайней мере, на концептуальном уровне? Например, Пролог Лямбды интересен особенно, потому что он допускает отношения высшего порядка, но AFAIK основан на intuitionist логике, и поэтому испытайте недостаток в принципе исключенной середины; это обычно - недостаток для меня.

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

19
задан nbro 7 September 2017 в 01:32
поделиться

4 ответа

Пролог был первым языком, который изменил мою точку зрения на программирование. Но позже я обнаружил, что он не настолько высокоуровневый, как мне хотелось бы.

Карри - я пробовал только Munster CC, и нашел его несколько неудобным. На самом деле, в этот момент я решил перестать игнорировать Haskell.

Mercury имеет много вещей, которые я хотел бы видеть в Prolog. У меня очень хорошие ожидания по поводу возможности различать режимы правил. Программы, написанные на Mercury, должны вдохновить компилятор на множество оптимизаций (я полагаю).

16
ответ дан 30 November 2019 в 04:03
поделиться

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

Это было очень поучительное упражнение. Первые 12 строк кода ( и и или ) буквально заняли около 6 часов, чтобы написать и исправить. Это была в значительной степени логика поиска, очень лаконично написанная с использованием продолжений. Остальное последовало немного легче. Затем, как только я добавил алгоритм унификации, все заработало.

2
ответ дан 30 November 2019 в 04:03
поделиться

Если бы я попытался расширить систему, основанную на логике, я бы выбрал Prolog Cafe , поскольку он небольшой, с открытым исходным кодом, совместим со стандартами и может быть легко интегрирован в системы на основе Java.

4
ответ дан 30 November 2019 в 04:03
поделиться

Двенадцать .

Он значительно обобщает лямбда-пролог, и это логическая и металогическая структура, а также язык логического программирования. Если вам нужен язык с упором на логику и вычисления, это лучшее, что я знаю.

9
ответ дан 30 November 2019 в 04:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: