Вопросы по теме 'prolog-toplevel'

Как вернуть как переменный результат, так и истину/ложь в Прологе?
Звучит глупо, но предположим, что мой предикат "самый большой/2" возвращает самый большой элемент в списке... вывод должен выглядеть так: ?- largest([1,2,3,4,5], X). X = 5. false. Я реализовал самый большой, и он работает так же, как и выше,...
5444 просмотров
schedule 11.01.2023

Возврат пролога при поиске решения и возвращение ложного
Я пытаюсь взломать Prolog (используя SWI-Prolog), и все работает так, как я хочу, то есть логика вычисляется правильно и находит правильные решения, но вся эта штука с возвратом меня лажает. Вот код: tall(X) :- skinny(X) ; eatless(X)....
1814 просмотров
schedule 15.11.2022

Пролог: условие остановки?
Вот очень простая база знаний Пролога: spouse(bill,cheryl). married(X,Y) :- spouse(X,Y). married(X,Y) :- spouse(Y,X). Я выполнил следующие запросы. Обратите внимание, что иногда ответом является правильное имя (только), но в других случаях...
1853 просмотров
schedule 20.03.2022

Не понимаю результат Пролога
Я новичок в Prolog. У меня есть такой код: loves(vincent, mia). loves(marsellus,mia). jealous(X,Y):- loves(X,Z), loves(Y,Z). Я спросил jealous(vincent,W) . Но SWI-Prolog дает мне W = vincent ! Разве это не должно быть W = marsellus ?
122 просмотров
schedule 30.04.2022

Предикат распечатывает неожиданное значение false
Я пытаюсь написать предикат likes/2 таким образом, чтобы он работал следующим образом: ?- likes(A,alan). A = lindsay ; A = chloe ; A = cheyanne ; A = britney ; Вот как я решаю проблему: % Define your facts: combo(lindsay,alan)....
323 просмотров
schedule 24.12.2022

Переменная не печатает все значение Prolog
Если я назначу что-то вроде process([[baby],[boy],[[is]dancing],[with],[[the][family]]],A) , то он выдаст результат как A = [[baby],[boy],[[is]dancing],[with],[[..][..]]]. Я хочу, чтобы он показывал все значения на терминале. Что-то вроде...
131 просмотров
schedule 21.12.2023

В чем разница между false и no в Prolog
Я начал изучать Пролог после прочтения книги Программирование на Прологе: Использование ISO Стандарт . На странице 7 введения к языку они сделали утверждение: «В Прологе ответ нет используется для обозначения ничего не объединяется с вопросом ....
3992 просмотров
schedule 19.07.2023

Пролог, при запуске написать что-нибудь
Я хочу отображать строку на терминале, когда пользователь ее выполняет. Но я хочу сделать это без вызова какого-либо предиката. Например, если код такой: print_sth(String):-write(String). он напечатает некоторую строку, только если я сделаю...
79 просмотров
schedule 25.02.2024

Почему SWI-Prolog дает мне только первый ответ?
Я новичок в Prolog. Я просто пытаюсь выучить простые примеры. У меня есть этот .pl файл со следующими строками: parent(pam,bob). parent(tom,bob). parent(tom,lio). parent(bob,ann). parent(bob,pat). parent(pat,jim). После консультации и...
2939 просмотров
schedule 27.03.2023

Запрос возвращает true/false
Недавно я начал изучать Prolog и столкнулся с проблемой. В Prolog загружено следующее: likes(john, apple). likes(john, pear). likes(john, grapes). likes(bill, mango). likes(bill, apple). Я пишу предикат all_like(What, List) , который...
12397 просмотров
schedule 24.02.2023

Prolog - вернуть результат вместо печати в алгоритме
Я знаю, что в Прологе технически нет «возврата», но я не знал, как иначе сформулировать вопрос. Я нашел пример кода алгоритма поиска маршрутов между станциями метро. Он работает хорошо, однако предполагается, что он просто печатает результат,...
433 просмотров

Результат PROLOG vs истина
У меня есть следующий код в файле с именем "testing.pl": fact(1). fact(2). fact(3). funcA(X) :- funcB(X). funcB(X) :- fact(X). testing :- funcA(_X). Затем в интерпретаторе SWI-Prolog я запрашиваю funcA(X). , и на выходе получается: X...
907 просмотров
schedule 30.11.2022

Ошибка типа: `character_code' ожидается с прологом
Я новичок в прологе. Я писал код с проблемой гипотезы Гольдбаха, в которой я должен перечислить все возможные группы одного четного числа. Я нашел такой код: is_prime(2). is_prime(3). is_prime(P) :- integer(P), P > 3, P mod 2 =\= 0, \+...
1982 просмотров

Выход из SICStus — командная строка
Есть ли другой способ выйти из SICStus в командной строке без необходимости нажимать ^C плюс e после (я не всегда могу попасть в это «меню справки» с помощью ^C ). «Настоящий» вопрос заключается в том, существует ли такая команда, как :exit...
72 просмотров
schedule 30.05.2023

Дополнительный «false» в конце запроса
В основном мне интересно, почему одно из моих определений для нового предиката g приводит к тому, что мой запрос заканчивается на «ложь», а другое определение сразу возвращается к «?-». Учитывая такую ​​базу данных: f(a,b). f(b,c). f(c,d)....
18 просмотров
schedule 28.03.2023

Как увидеть все ответы в SWI-Prolog, не нажимая пробел?
Простой пример: ?- between(1,10,X). X = 1 ; X = 2 ; X = 3 ; X = 4 ; X = 5 ; X = 6 ; X = 7 ; X = 8 ; X = 9 ; X = 10. Когда это делается с помощью SWI-Prolog с использованием REPL, чтобы увидеть следующий ответ, необходимо нажать пробел. Как...
2251 просмотров
schedule 31.08.2023

Пролог возвращает true вместо yes
Мой код Пролога должен возвращать да (или нет) после ввода запроса, но вместо этого возвращает «true?» и требуя, чтобы я нажал клавишу ввода, чтобы получить «да». Проблема с русскими куклами, порядок кукол от внешнего к внутреннему: катрина->...
266 просмотров
schedule 17.05.2023

Как отправить EOF на Prolog swipl REPL в Windows, чтобы закрыть псевдопользовательский файл?
Я использую swipl.exe Prolog REPL в Windows и пытаюсь использовать пользователя псевдофайл , открытый с помощью [user]. , но я не могу найти сочетание клавиш, чтобы оставить псевдофайл: c:\code>swipl.exe Welcome to SWI-Prolog (threaded, 64...
102 просмотров
schedule 25.09.2022

Пролог: сохранение результата операции
только начал программировать на прологе, и у меня есть несколько проблем. Я хочу сохранить результат операции, например: transformer(kilo,1000). transformer(hecto,100). transformer(deca,10). transformer(unite,1). transformer(deci,0.1)....
41 просмотров
schedule 13.01.2023