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

GNU Prolog - это совместимый с ISO диалект Пролога, разработанный Даниэлем Диазом. GNU Prolog имеет ограничения по конечным доменам, создает собственные двоичные файлы и обеспечивает двунаправленный интерфейс с C.
1 ответ

Почему не работает absolute_file_name

Следующий код работает в swi-prolog: :- asserta(user:file_search_path(money, '/media/D/db')). dataFile(F) :- absolute_file_name(money('test.dat'), F, []). Кажется, в gprolog нет модуля. Как я могу заставить его работать под gprolog? Искренне!
01 мар '13 в 07:28
1 ответ

Как определить фиктивный предикат / заполнитель в GNU Prolog

У меня есть файл Prolog со следующей структурой: % LIBRARY SECTION % foo(X) :- bar(X); baz(X). % USER DATA SECTION % % e.g. bar(charlie). Пользовательские данные файла предназначены для расширения пользователем, но по умолчанию ничего не содержат. О…
17 июл '15 в 07:20
2 ответа

gprolog: получение трассировки стека после исключения

При использовании gprolog у меня часто бывают исключения без каких-либо номеров строк или контекста, подобных этому: uncaught exception: error(instantiation_error,(is)/2) Без какого-либо контекста. Я знаю, что могу сделать trace но это займет очень …
11 июн '15 в 18:03
1 ответ

Добавление строк в списки в прологе

Я новичок в Прологе, и у меня уже есть некоторые проблемы, чтобы понять, дело в том, что я тестировал добавление некоторых строк, представленных консолью: append_str([],Adder,Adder). append_str([Head|Tail],Adder,Result):- append_str(Tail,[Head|Adder…
16 дек '12 в 17:31
0 ответов

Есть ли инструмент, который может автоматически генерировать вызываемый интерфейс Prolog из функций C?

Так что в основном я использую Prolog для вызова большого количества функций на C, используя GNU-Prolog. Вот пример: int add(int a, int b) { int res = a + b; return res; } Если я хочу вызвать эту функцию из кода Пролога, мне нужно создать этот интер…
11 апр '14 в 14:27
3 ответа

Проверка тавтологии для GNU Prolog

Я ищу реализации проверок тавтологии с открытым исходным кодом, написанных на GNU Prolog (реализация для SWI-Prolog также приемлема, но GNU Prolog предпочтительнее). Я хотел бы скормить ввод программы с помощью таких запросов: A and (B or C) iff (A …
14 авг '11 в 19:01
1 ответ

Гну Пролог Сегфо по простой математике

Учитывая следующий код: example1(X) :- X is 1. example2(X) :- X is 1+1. когда я запускаю его с помощью gprolog, я получаю: $ gprolog GNU Prolog 1.4.0 By Daniel Diaz Copyright (C) 1999-2011 Daniel Diaz | ?- ['example']. compiling /Users/tomo/projects…
20 ноя '11 в 22:31
1 ответ

Как преобразовать список чисел в список слов в прологе?

Я пытаюсь написать программу Prolog, такую, которая дает список чисел, таких как [1, 2, 3], он преобразует их в список слов, представляющих эти числа ['one', 'two', 'three'], Мой код до сих пор: totext(0, 'zero'). totext(1, 'one'). totext(2, 'two').…
22 фев '19 в 19:04
3 ответа

Это как-то "отражение" в Прологе?

Поэтому в основном я пытаюсь использовать некоторый код Пролога для имитации поведения, подобного указателю. Я задал соответствующий вопрос здесь, и примерно через месяц у меня наконец-то появилось время для начала. Вот простой пример в C: int a = 1…
13 май '14 в 02:40
4 ответа

gprolog - простой способ определить, является ли один список перестановкой другого

Я пытаюсь написать прологическую программу, которая определяет, является ли один список перестановкой другого. Вход имеет вид perm(L,M), который будет истинным, если и только если список L перестановка списка M, Это для моего класса AI, поэтому я не…
0 ответов

Головоломка prolog nurikabe: предикат не определен

Я пытаюсь запустить этот код в прологе, чтобы решить головоломку nurikabe, но я получаю эту ошибку Predicate fd_domain/3 not defined я пытаюсь убедиться, чтобы получить в конце решение, которое содержит: ячейки, представляющие море -> соединены гори…
02 июн '18 в 13:34
2 ответа

Обходной путь sure_loaded/1 GNU Prolog?

Есть ли обходной путь, чтобы обеспечить, чтобы sure_loaded/1 работал в GNU Prolog, как это работает во многих других системах Prolog? Цель состоит в том, чтобы иметь преамбулу, чтобы остальная часть кода могла использовать sure_loaded/1 независимо о…
11 июн '14 в 21:18
0 ответов

GNU Prolog Java не удается

Я пытаюсь использовать Prolog через Java с интерпретатором GNU, но у меня есть одна большая проблема. Если сделать запрос к переменной, я всегда получаю имя переменной обратно. Итак, вот некоторый код: node(1,3,3). node(2,14,1). node(3,19,5). node(4…
27 янв '15 в 14:07
4 ответа

Проблема с `\+` в пролог-запросах с переменными

Я читаю "Семь языков за семь недель", и я озадачен каким-то вопросом Пролога, на который я не понимаю ответа "нет". friends.pl файл выглядит так: likes(wallace, cheese). likes(grommit, cheese). likes(wendolene, sheep). friend(X, Y) :- \+(X = Y), lik…
12 май '11 в 00:09
2 ответа

Finite Domain Solver fd_minimize/2

Мне нужно минимизировать предикат в Прологе. В настоящее время я использую GNU Prolog Java. У меня есть этот факт army( Territory,X ). Это говорит о том, что у данной территории есть Х армия. Теперь я хочу найти минимальное количество армий, которым…
26 апр '12 в 18:01
1 ответ

Найти булеву схему с прологом

Проблема заключается в следующем: рассматривая три входа A,B,C, найдите логическую схему с логическими элементами И, ИЛИ и НЕ, чтобы выход не был (А), не (В), не (С), используя не более 2 НЕ ворота. Я хотел бы найти схему с прологом. Моя идея состои…
29 май '14 в 16:23
2 ответа

Как распечатать результаты унификации при использовании пролог-скрипта?

Я использую скрипт пролога для выполнения всех запросов, код выглядит так: :- initialization(run). writeln(T) :- write(T), nl. queryAll :- forall(query(Q), (Q -> writeln('yes':Q) ; writeln('no ':Q))). run :- queryAll, halt. query( (1,2,3) = (X,Y,…
19 янв '13 в 16:01
2 ответа

Директива gprolog include не работает

Я использую gprolog версии 1.4.2 на компьютере с Fedora 17 Linux. Я написал небольшую прологическую программу, которая отлично работает. В нем я определил несколько предикатов, которые я хочу использовать в других пролог-программах. Поэтому я решил …
03 июн '13 в 23:47
2 ответа

Могу ли я "поймать" сигнал linux в GNU-Prolog?

Есть ли способ "поймать" (например, "поймать") сигнал операционной системы в GNU Prolog? (Я использую Ubuntu/Linux, последний gprolog). Я думаю, что давным-давно я использовал этот подход в WAMCC, а затем превратился в GNU Prolog: :- catch(Long_Runn…
20 июн '15 в 16:44
2 ответа

Компилировать GTK с GPLC

Попытка скомпилировать файл C GTK gui + Prolog с использованием GPLC. Я прочитал, что могу передать несколько флагов компилятору gcc из GPLC, используя-C 'gcc flags here' Хорошо, так что я могу скомпоновать мой графический интерфейс наедине с gcc fo…
01 ноя '15 в 07:16