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

ISO/IEC стандартизировал Пролог. Стандарт поддерживается ISO/IEC JTC1/SC22/WG17.
2 ответа

Доступное для поиска описание языка Пролог онлайн

Есть ли в Интернете описание языка Пролог (синтаксис и семантика)? Есть много справочных руководств для реализации. Но ни один из них не является описанием языка. Например, в руководстве SWI Prolog говорится Это руководство не описывает полный синта…
06 июн '12 в 12:22
1 ответ

appendAll - добавить список ко всем спискам в списке

Я пытаюсь найти способ добавить список ко всем спискам в списке. Что-то вроде: appendAll([a,b],[[q,w],[z,x]],X). X = [[a,b,q,w],[a,b,z,x]]. Я все еще новичок в прологе, и вложенные списки немного сбивают меня с толку. Я смотрю на это уже несколько ч…
19 фев '12 в 01:03
1 ответ

Пролог инфиксных операторов с одинаковым приоритетом один xfy, а другой yfx с двумя последовательными операторами

В попытке понять просто инфиксные операторы типа xfy а также yfx с тем же приоритетом и в последовательности я вижу, что есть только четыре комбинации. с помощью a = xfy right-associative b = yfx left-associative Есть aa e.g. 1 xfy 2 xfy 3 e.g. 1 ^ …
19 дек '13 в 18:29
3 ответа

Результатом Sum является слово floor(Col + Row + 1), которое никогда не является целым числом, и я не знаю, почему

Я должен написать часть пролога, где я должен вычислить, какая позиция в массиве используется для хранения значения. Однако результат этих вычислений должен возвращать целое число, поэтому я использую предикат floor/1, чтобы получить целое число зна…
15 апр '14 в 16:51
1 ответ

Пролог Функтор - Вычислительный x^y

Я новичок в прологе и пытаюсь научиться программировать. Я хочу знать, как вычислить x^y в Прологе оба являются целыми числами. Я точно знаю, что это происходит примерно так: % exp(y,x,z) <- z is x**y
29 дек '11 в 15:47
1 ответ

Однажды в SICStus Prolog?

Как я могу использовать once в SICStus? В SWI Prolog работает следующее: test(X, Y, abc) :- once(X == 'true' ; Y == 'true'). но в SICStus Prolog, once кажется непризнанным. Что эквивалентно once в SICStus? Спасибо.
28 фев '17 в 18:49
2 ответа

Пролог: пункты не в исходном файле

У меня есть этот кусок кода: % Family tree female(pen). male(tom). male(bob). female(liz). female(pat). female(ann). male(jim). parent(pam, bob). parent(tom, bob). parent(tom, liz). parent(bob, ann). parent(bob, pat). parent(pat, jim). Я получаю эту…
04 май '13 в 11:46
3 ответа

Эквивалент травления Python в SWI Prolog?

У меня есть программа Prolog, где я выполняю поиск методом грубой силы по всем строкам до определенной длины. Я проверяю, какие строки соответствуют определенному шаблону, продолжая добавлять шаблоны, пока, надеюсь, не найду набор шаблонов, который …
14 июн '12 в 19:41
1 ответ

Почему я получаю ошибку типа на пи в Прологе?

Я использую pi как часть программы Пролог, которую я пишу. Вот мое единственное упоминание о pi во всей программе: ArcDistance is ((Degree/ 360) * Diameter * pi). Однако, когда я запускаю программу, я получаю следующую ошибку: uncaught exception: er…
27 окт '13 в 20:42
2 ответа

Prolog DCG set_prolog_flag директива с исходным кодом double_quotes имеет значение; документация?

Я с трудом узнал, что с SWI-Prolog расположение директивы Prolog set_prolog_flag имеет значение в файле исходного кода. Единственная полезная документация о загрузке файлов исходного кода с директивами была в разделе Загрузка исходных файлов Prolog.…
29 июл '17 в 13:54
1 ответ

Киньте без подвоха в ISO Пролог

Я борюсь с точной семантикой throw/1 без подходящего catch/3 в ISO Prolog. Я читаю спецификацию ISO Prolog, и мне кажется, что выполнение закончится бесконечной рекурсией. (Обратите внимание, что для интерпретации этого вопроса у вас должен быть дос…
04 авг '14 в 18:12
2 ответа

Эквивалентность оператора дизъюнкции и определение с несколькими правилами

Я просто наткнулся на определение ;/2 в Руководстве по Прологу SWI, в котором говорится: The `or' predicate is defined as: Goal1 ; _Goal2 :- Goal1. _Goal1 ; Goal2 :- Goal2. Разве это не значит, что ;/2 ведет себя точно так же, как если бы мы написал…
14 фев '19 в 13:47
3 ответа

Существует ли грамматика / спецификация пролога?

Существует ли грамматика языка пролога или что-то близкое к ней, которое обычно используется в качестве справочного материала? Я использую SWI-пролог, поэтому было бы неплохо иметь один для этого варианта, в противном случае также подойдет общая гра…
27 авг '14 в 03:22
4 ответа

Есть ли у Пролога условие и перезапустить систему, как Common Lisp?

Common Lisp позволяет обрабатывать исключения через условия и перезапускается. Грубо говоря, когда функция выдает исключение, "ловушка" может решить, как / должен ли "метатель" действовать. Предлагает ли Prolog подобную систему? Если нет, то можно л…
27 сен '12 в 20:05
2 ответа

Почему SWI-Prolog объединяет строку в кавычках и без кавычек (без пробелов) в одно правило?

Предположим, у меня есть следующие правила: unify('test', 'this is a test'). run :- write('Enter something: '), read(X), unify(X, Y), write('The answer is '), write(Y). И тогда я запускаю это следующим образом: ?- ['unify.pl']. % unify.pl compiled 0…
04 ноя '10 в 20:18
1 ответ

Всегда ли необходимо использовать '.\ N' при чтении потоков в Прологе?

Я использую каналы для связи двух процессов Prolog, и каждый раз, когда я достиг read/2 Предикат прочитал сообщение из моей трубы, программа заблокировалась и так и осталась. Я не мог понять, почему это произошло (я попробовал с очень простыми прогр…
03 апр '13 в 17:03
3 ответа

Будет ли использование member в предложении forall в SWI-Prolog всегда выводить элементы в одном и том же порядке?

Недавно попав в Пролог, я использовал его для нескольких простых задач и начал задаваться вопросом об использовании member внутри циклов forall, как в приведенном ниже тривиальном примере: forall(member(A,[1,2,3,4]), print(A)). В случае, если вы дел…
03 фев '14 в 16:19
0 ответов

Как стандарт ISO Prolog требует сохранения идентификатора переменной при преобразовании из условия в термин?

Я что-то упускаю при чтении ISO / IEC 13211-1, подпункты 7.6.3 и 7.6.4: 7.6.3 Преобразование главы предложения в термин Голова H с предикатным индикатором P/N может быть преобразован в термин T: а) если N тогда ноль T это атом P, б) если N ненулевой…
05 июн '16 в 17:13
1 ответ

Пролог: объявление оператора

Я определил! (факториал) функция и зарегистрировал ее как арифметическую функцию и оператор, так что я могу выполнить: A равно 6!. Теперь я хотел бы определить! (факториал нечетных чисел), но так же - написание предложений, регистрация arithmetic_fu…
23 мар '12 в 17:27
1 ответ

Список предикатов в данном модуле библиотеки

Есть ли способ перечислить все предикаты, которые определены в данном модуле библиотеки для SICStus Prolog? например, если я загружаю модуль списков: | ?- use_module(library(lists)). есть ли другой предикат, который я могу запустить из приглашения, …
16 июл '15 в 13:47