Описание тега lambda-prolog

λProlog - это язык логического программирования, основанный на интуиционистском фрагменте простой теории типов Черча, включающий полиморфную типизацию, модульное программирование, абстрактные типы данных, поддержку синтаксиса лямбда-дерева и программирование более высокого порядка.
2 ответа

Предикат "решений" высшего порядка

Я использую вариант Пролога высшего порядка, в котором отсутствует findall, Есть еще один вопрос по реализации нашего собственного findall здесь: Получение списка решений в Прологе. Неэффективная реализация: parent(pam, bob). %pam is a parent of bob…
11 ноя '17 в 03:10
1 ответ

Ошибки при установке OMake на OSX 10.10.5

Я пытаюсь установить OMake, чтобы я мог установить Teyjus, чтобы я мог начать писать немного лямбда-пролога, но я получаю кучу ошибок в OS X 10.10.5. Самый последний, который я не могу понять, это: *** omake: 497/1193 targets are up to date *** omak…
21 фев '16 в 10:32
2 ответа

Понимание списков в лямбда-прологе

Я использую Teyjus для программирования на Lambda Prolog. У меня есть простой генератор списков: type islist int -> list X -> o. islist N nil :- N >= 0. islist N (H::T) :- N >= 0, M is N - 1, islist M T. Мне нужно создать предикат, котор…
12 ноя '20 в 23:01
3 ответа

Схема чистого пролога Quine

Вот эта бумага: Уильям Э. Берд, Эрик Холк, Дэниел П. Фридман, 2012miniKanren, Генерация Quine в реальном времени и без тегов с помощью реляционных интерпретаторов http://webyrd.net/quines/quines.pdf Которая использует логическое программирование, чт…
2 ответа

Есть ли разница между N-арной функцией в Карри и N+1-арным отношением в Прологе?

Curry, в отличие от своего двоюродного брата Haskell, позволяет вам присваивать функции несколько значений: foo 1 2 = 3 foo 1 2 = 4 и он выполняет возврат (или какой-либо другой поиск), чтобы исследовать последствия такого недетерминизма. Это делает…
0 ответов

Может ли Пролог более высокого порядка помочь расширению замыкания?

Если я введу этот код в SWI-Prolog: goal_expansion(println(X), (write(X), nl)). test :- call(println, 'Hello World!'). Листинг показывает мне этот результат: test :- call('__aux_wrapper_8a89205eca9a6ffb31dd01cc968a2aa022fa1f49', 'Hello World!'). '__…
14 дек '20 в 12:51
2 ответа

λProlog отклоняет гипотетические логические запросы?

Я подозреваю, что teyjus, основная реализация λProlog, может быть немного заброшенным, но λProlog — это увлекательный Пролог, который должен позволить вам использовать логику более высокого порядка, гипотетические рассуждения и другие вещи, поэтому …
07 дек '20 в 05:42
0 ответов

Предложения в (лямбда)прологе, начинающиеся с разреза

Я читаю статью « Реализация теории типов в программировании логики с ограничениями высшего порядка », и на p7 я вижу следующий код лямбда-пролога: % KAM-like rules in CPS style whd1 (app M N) S Ks Kf :- !, Ks [] M [N|S]. whd1 (lam T F1) [N|NS] Ks Kf…
1 ответ

λProlog гипотетическое рассуждение Крестики-нолики

λProlog использует гипотетические рассуждения . Используя оператор (=>)/2, мы можем временно утвердить некоторое предложение. Можно ли это использовать для реализации состязательного поиска в λProlog? Думал об игре в крестики-нолики. Вместо того,…
23 янв '21 в 22:59
2 ответа

Обратное преобразование в Прологе

Хотел бы сделать следующее обратное преобразование из выражений SKI в лямбда-выражения: L[I] = λx.x L[K] = λx.λy.x L[S] = λx.λy.λz.(x z (y z)) L[(E₁ E₂)] = (L[E₁] L[E₂]) Преобразование не обязательно должно включать какое-либо бета-восстановление. Н…
15 дек '20 в 12:20
1 ответ

Существует ли Пролог более высокого порядка, которому не нужна система типов?

Я подозреваю, что λProlog нуждается в системе типов, чтобы их унификация более высокого порядка звучала . В противном случае при самостоятельном применении могут появиться некоторые аномалии типа Рассела. Существуют ли альтернативные прологи более в…