Описание тега 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