Описание тега occurs-check
0
ответов
Происходит проверка дружественной структуры функций Пролога unify
Структуру объектов иногда идентифицируют с открытыми картами. Затем они могут быть представлены в виде открытых списков Пролога с использованием оператора (:) / 2 для объединения в пары. Этот термин функции: Дала бы этот термин Пролога: [number:sg, …
19 фев '21 в 15:58
1
ответ
Почему `f(a)=a` не работает, а` f(X)=X` преуспевает в прологе?
Я наткнулся на следующее: ?- f(X) = X. X = f(X). ?- f(a) = a. false. Почему унификация работает для f(X) = X, но не для f(a) = a? Это потому, что сначала просто говорит имя возвращаемое значение f(X) в качестве X, тогда как второй пытается проверить…
23 фев '21 в 10:08
2
ответа
Какую оптимизацию выполняет SWI Prolog?
Процитируем руководство SICStus Prolog : Обычная математическая теория, лежащая в основе логического программирования, запрещает создание циклических термов, диктуя, что проверка происходит каждый раз, когда переменная объединяется с термом. К сожал…
06 янв '21 в 20:12
3
ответа
Оптимизируют ли современные компиляторы Prolog автоматическую проверку происходящего, когда это безопасно?
Изменить: этот вопрос предполагает, что вы включили проверку возникновения. Это не о настройке Пролога флаги . 30 лет назад была куча статей об оптимизации автоматической проверки событий, когда это безопасно (около 90% предикатов в типичных кодовых…
14 дек '20 в 01:58
3
ответа
Как Пролог может получать бессмысленные результаты, такие как 3 <2?
В статье, которую я читаю, говорится следующее: Плейстед [3] показал, что можно писать формально правильные программы PROLOG, используя семантику исчисления предикатов первого порядка, и при этом получать бессмысленные результаты, такие как 3 <2.…
13 дек '20 в 13:40
0
ответов
Как проверить анализ переменных SWI-Prolog
Есть ли какая-нибудь утилита для проверки анализа переменных предложения до того, как оно будет утверждено во время консультации. Я читал, что SWI-Prolog выполняет некоторый анализ переменных, но я новичок в этом. Интерес к этому анализу переменных …
06 фев '21 в 15:49
3
ответа
Схема чистого пролога Quine
Вот эта бумага: Уильям Э. Берд, Эрик Холк, Дэниел П. Фридман, 2012miniKanren, Генерация Quine в реальном времени и без тегов с помощью реляционных интерпретаторов http://webyrd.net/quines/quines.pdf Которая использует логическое программирование, чт…
25 дек '20 в 11:48
1
ответ
Как запустить setarg_with_occurs_check/3 в Прологе?
Как можно было бы начать и начать setarg_with_occurs_check/3в Прологе. Кажется, что в Prolog есть два способа создания циклических структур данных. Это может сделать не только унификация, но и setarg / 3: /* SWI-Prolog 8.3.26 */ ?- X = f(X). X = f(X…
04 сен '21 в 19:42
0
ответов
Пролог-системы с зависанием при проверке
user884463 поставил интересную задачу о проверке. Сопрограмма, поддерживающая проверку событий, может быть реализована следующим образом с предикатом with_occurs_check/2, который можно легко реализовать как уточнение with_occurs_check/1: occurs_che…
04 фев '21 в 17:20
2
ответа
Правильный unify_with_occurs_check/2 в SWI-Prolog?
Получил это странное поведение. Я запускал эти тестовые случаи: s1 :- Q=[[lambda,symbol(_3026),[cons,[quote,_3434], [quote,_3514]]],[quote,_3206]], P=[_3434|_3514], freeze(_3434, (write(foo), nl)), unify_with_occurs_check(P, Q). s2 :- Q=[[lambda,sym…
01 янв '21 в 19:21
1
ответ
Моделирование exists_check=ошибка в SICStus Prolog
Оказывается, что SICStus Prolog не имеет флага Prolog exists_check. По крайней мере, мы не смогли найти его, и здесь выдается сообщение об ошибке: /* SICStus 4.6.0 (x86_64-win32-nt-4) */ ?- set_prolog_flag(occurs_check, true). Domain error in argume…
06 янв '21 в 16:02
1
ответ
Как безопасно временно изменить флаг проверки событий?
Я использую следующий код, чтобы временно изменить флаг проверки возникновения, где G — цель, которая не создает никаких отложенных целей: with_occurs_check(G) :- current_prolog_flag(occurs_check, F), setup_call_cleanup( set_prolog_flag(occurs_check…
04 фев '21 в 12:09
2
ответа
Что такое простой наихудший случай для проверки в Прологе?
Во многих работах отмечается, что задача эквациональной унификации, такая как приведенная ниже, может выполняться за экспоненциальное время, когда . Нет оговорки, что это запрос верхнего уровня или тело предложения, это просто проблема эквационально…
10 янв '21 в 16:00