Описание тега prolog-coroutining
Сопрограммы в Прологе позволяют динамически изменять порядок выполнения целей.
1
ответ
SWI-Пролог: Как использовать мой собственный предикат в качестве условия в когда /2
Я пытаюсь реализовать программу Prolog, которая может взаимодействовать с Java. Для этого я использую JPL в качестве интерфейса Prolog/Java. Я ищу механизм, который позволяет мне выполнять действия автоматически, когда условия становятся реальностью…
08 дек '18 в 16:14
3
ответа
Охранные пункты в прологе?
Они существуют? Как они реализованы? Сопутствующие предикаты SWI-Пролог (freeze, when, dif и т. д.) имеют функциональность охранников. Как они вписываются в предпочтительный стиль программирования Prolog? Я очень плохо знаком с логическим программир…
07 дек '12 в 09:08
2
ответа
Логическое отрицание в прологе
Я прочитал довольно много о Отрицании Пролога Отказом, где Пролог, чтобы доказать это \+Goal держит пытается доказать, что Goal выходит из строя. Это тесно связано с CWA (предположение о близком мире), где, например, если мы запрашиваем \+P(a) (где …
09 дек '17 в 14:21
2
ответа
Как писать / редактировать собственные сопрограммы в Прологе?
Я хотел бы построить свои собственные сопрограммы в Прологе. Я хотел бы добавить некоторые дополнительные функции.
03 май '14 в 21:37
2
ответа
Сопрограмма в Прологе: когда аргумент является списком (он имеет фиксированную длину)
Вопрос Можно ли запланировать выполнение цели, как только длина списка будет известна / исправлена, или, как указывает @false в комментариях, данный аргумент становится [правильным] списком? Что-то вроде этого: when(fixed_length(L), ... some goal ..…
19 янв '15 в 12:03
1
ответ
Замораживание цели в прологе
Я хочу заморозить свою цель, пока какая-то переменная, например, list, не будет неограниченной, прямо сейчас у меня есть sieve(N,L) :- freeze(Aux,sieve(N,L,[],Aux)), numlist(2,N,Aux). sieve(N,L,R,[H|T]) :- freeze(X, X mod H =\= 0 ; X == H), findall(…
09 июн '15 в 08:31
0
ответов
Как использовать freeze/2 или когда / 2 для более чистого кода Пролога
Я написал предикат term_ctx_subterm/3, который представляет собой связь между термином, контекстом с одним отверстием для этого термина и подтермом, который заполняет дыру. По большей части предикат работает так, как я хочу. Смотрите код и примеры е…
01 ноя '16 в 15:15
2
ответа
Удалить ведущие s(s(0)) в списке
(Это продолжение этого вопроса). Как написать lead1(Xs,Ys) что верно, если Ys это суффикс Xs со всеми ведущими s(s(0)) сроки удалены. Таким образом, вместо удаления ведущих 0 Теперь этот вопрос касается удаления ведущих s(s(0)) s. По сравнению с пер…
04 окт '16 в 21:44
0
ответов
Обратное применение лямбда-выражения, eta+ альфа-преобразование в Прологе?
Есть несколько интересных проблем с совместной маршрутизацией. Например, мы хотим вернуть недостигнутые замороженные цели. Но есть проблема для систем Prolog, которые не поддерживают циклические термины. А именно замораживание: ?- freeze(V, p(...V..…
13 мар '16 в 11:44
2
ответа
Заморозить для более чем одной переменной
Я попытался написать предикат, который берет список и преобразует его в сбалансированное дерево. Мой код выглядит следующим образом: /* make_tree(list, tree) * * list: list with the elements of the tree in prefix order * tree: balanced tree of the e…
08 июн '15 в 12:19
1
ответ
Пролог отложил оценку: LIFO или FIFO пробуждение?
Многие системы Пролог имеют freeze/2 предикат, предикат, который, возможно, должен иметь имя geler/2 поскольку он был изобретен еще до Пролога-II. Предположим, у меня есть условие для одной и той же переменной, но двух разных целей, а именно: ?- fre…
31 янв '16 в 22:29
2
ответа
При смешивании пролога сопрограммирования (заморозка /2, когда /2) и DCG
В моем предыдущем ответе на недавний вопрос " Тест дерева двоичного поиска Пролога - сравнение родительских узлов нежелательных родителей " я предложил смешать lazy_chain/2 который использует пролог-сопроводить... : - use_module ( библиотека (clpfd)…
15 янв '16 в 09:08
2
ответа
Заморозка / блокировка 2 целей по переменным, которые стали недоступны
Я сделал следующую небольшую программу, чтобы определить, используется ли память для таких целей, как freeze(X,Goal) восстанавливается, когда X становится недоступным: %:- use_module(library(freeze)). % Ciao Prolog needs this freeze_many([],[]). fre…
28 июн '15 в 00:49
1
ответ
Неожиданное поведение замороженного /2
Я играл с предикатами пролога-сопрограммы freeze/2 а также frozen/2: ?- freeze(X,a=a), frozen(X,Goal). ?- freeze(X,a=a), freeze(Y,b=b), X=Y, frozen(X,Goal). sicstus-prolog (версия 4.5.1 для x86_64) дал следующие ответы: |?- заморозить (X, a = a), за…
17 ноя '19 в 23:43
1
ответ
Овеществление земли в Прологе с атрибутивными переменными
Я работаю над собственной реализацией. Внутри,when/2должен уметь — за неимением лучшего слова — «овеществлять»ground/1. Выполнение этого с использованием переменных с атрибутами (в стиле SICStus-Prolog) - вот о чем этот вопрос. Моя реализация должна…
30 ноя '22 в 19:51