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

"Верхний уровень" или "цикл верхнего уровня" - это REPL Пролога.
1 ответ

Ввод списка в SWI-прологе и нажатие Enter ничего не делает

Я прохожу здесь учебник по прологу, и он говорит мне, что нужно набрать в листинге список содержимого текущей базы знаний. Я уверен, что без загрузки КБ, он должен отображать бред. Однако вместо этого я имею: после того, как я нажму Enter, который н…
02 фев '17 в 21:36
0 ответов

SWI-Пролог не маркирует более 9 переменных

Я хочу 10 переменных с ограничениями, но пролог только помечает 9. Вот мой код: :- use_module(library(clpfd)). colour(Regions) :- Regions = [A,B,C,D,E,F,G,H,I,J], Regions ins 1..10, all_distinct(Regions), labeling([], Regions). %%% Output: ?-colour(…
21 апр '14 в 14:28
1 ответ

Правило Пролога - Ложь?

У меня есть факты: /**--(course,time,location)--*/ ctl('course1', 'time1','location1'). ctl('course2', 'time1','location2'). ctl('course3', 'time2','location3'). /**--Lecturer,course-*/ lc('lecturer1','course1'). lc('lecturer2','course2'). lc('lectu…
07 дек '12 в 07:33
3 ответа

Как использовать Ground/1?

Я начинающий с Пролога, и я хотел знать, как использовать ground/1, На данный момент у меня есть этот код: intertwine([], [], []). intertwine([E|Es], Fs, [E|Gs]) :- intertwine(Es, Fs, Gs). intertwine(Es, [F|Fs], [F|Gs]) :- intertwine(Es, Fs, Gs). Но…
02 дек '11 в 03:52
1 ответ

Как отсортировать вывод в Прологе?

У меня есть следующий предикат: soln(L,M,O,R,S,V) :- permutation([L,M,O,R,S,V],[1,2,3,4,5,6]), R=\=S+1, R=\=S-1, M=:=L+1, O>M, O<S. Когда я звоню из REPL, он выводит правильные ответы: ?- soln(L,M,O,R,S,V). L = 1, M = 2, O = 3, R = 4, S = 6, V…
22 янв '17 в 10:43
1 ответ

В SWI-Prolog, когда я вызываю copy_stream_data, как я могу избежать приглашения "|:"?

Я реализовал cat программа в SWI-Пролог с помощью copy_stream_data, файл args.pl: :- module(args, [withFilesOrUserInput/2]). withFilesOrUserInput(StreamFunction, []) :- call(StreamFunction, user_input). withFilesOrUserInput(StreamFunction, [Filename…
26 авг '15 в 19:23
1 ответ

Цель (директива) не выполнена: пользователь: основной пролог swi

may(_,[],[]). may(num(U),[est(C1,N1,NT1)|T1],[est(C1,N1,NT1)|T2]):- U =< NT1, may(num(U),T1,T2). min(_,[],[]). min(num(U),[est(C2,N2,NT2)|T3],[est(C2,N2,NT2)|T4]):- U > NT2, min(num(U),T3,T4). main:- U is 2.0, mayores(num(U), [ est(3,"J",3.1),…
18 апр '17 в 23:46
1 ответ

Пролог: Как настроить максимальную длину списков, отображаемых на трассе?

Не стесняйтесь вырезать сразу мимо первых двух параграфов, они в основном вафельные, объясняющие ситуацию. Я работаю над заданием для своего университетского курса, хотя мне не нужна помощь в решении реальной проблемы (я чувствую, что это "обман"), …
30 апр '16 в 19:41
1 ответ

Пролог анонимной переменной

Вот что я понял о переменных Пролога. Одно подчеркивание обозначает анонимную переменную, которая каждый раз похожа на новую переменную. Имя переменной, начинающееся с подчеркивания, например _W, не является анонимной переменной. Или имена переменны…
09 янв '13 в 15:18
1 ответ

Пролог цель с несколькими результатами

spec(comp1, pc, 32). /* Fact 1 */ spec(comp2, mac, 128). /* Fact 2 */ spec(comp3, pc, 64). /* Fact 3 */ runs(pc, movie_edit, 96). /* Fact 4 */ runs(pc, vb, 16). /* Fact 5 */ runs(pc, cpp, 28). /* Fact 6 */ runs(mac, vb, 24). /* Fact 7 */ runs(mac, p…
02 дек '18 в 10:25
0 ответов

Пролог не "возвращает" истину или ложь

У меня есть небольшая проблема. Я получил запрос Prolog, который "возвращает" значение, которое я хочу, но затем в качестве второго значения я хочу, чтобы оно возвращало true или false. Все остальные мои запросы работают нормально, но этот не работа…
09 мар '15 в 11:29
1 ответ

Как расширить результирующий список в SWI-Prolog?

?- length(L,25). L = [_G245, _G248, _G251, _G254, _G257, _G260, _G263, _G266, _G 269|...]. Если я использую запись (L) после предиката длины, то интерпретатор печатает список дважды, один расширенный, а другой нет.
06 окт '09 в 14:37
1 ответ

Ошибка типа: ожидается символьный код с прологом

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

Для длины /2, как добавить понятные человеку имена переменных

Как могут отображаться понятные человеку имена переменных для имен переменных, генерируемых системой? В качестве простого примера: ?- length(Ls,N). Ls = [], N = 0 ; Ls = [_5112], N = 1 ; Ls = [_5112, _5118], N = 2 ; Ls = [_5112, _5118, _5124], N = 3…
30 янв '19 в 20:55
1 ответ

Неопределенная ошибка процедуры в прологе SWI

Запуск пролога SWI на windows 8 в первый раз. это файл моей программы (.pl), очень простой только с 3 фактами: (Я начинающий пролог) hello. a. b. Когда я загружаю его (консультируюсь) в пролог-SWI и работаю с программой, я получаю эту ошибку в своем…
15 ноя '14 в 23:02
0 ответов

Перестановка /2 не возвращает перестановки

Что такое перестановка /2? Как сказано в help(permutation).: Предикат permutation/2 в первую очередь предназначен для генерации перестановок. Вот для чего я хочу это использовать. Как должна работать перестановка / 2 Это пример, приведенный в докуме…
03 май '18 в 04:49
2 ответа

Пролог выдает ошибку "неопределенная процедура" при попытке использовать:-

Я использую SWI-Prolog в Windows и получаю следующую ошибку: 14 ?- parent(X, Y) :- child(Y, X). ERROR: toplevel: Undefined procedure: (:-)/2 (DWIM could not correct) Я не совсем уверен, что происходит, так как это сработало на прошлой неделе, и я то…
23 мар '11 в 10:56
1 ответ

Команды оболочки от верхнего уровня

По-видимому, я могу использовать некоторые команды оболочки с верхнего уровня, ?- pwd. /home/boris true. Другие, которые работают ls, cd, Любая идея, где они документированы, или какие еще есть? (Это на Linux, не могу проверить, работает ли он также…
29 ноя '13 в 12:03
2 ответа

Переменная не печатает все значение Пролог

Если я назначу что-то вродеprocess([[baby],[boy],[[is]dancing],[with],[[the][family]]],A), то это дает вывод как A = [[baby],[boy],[[is]dancing],[with],[[..][..]]]. Я хочу, чтобы он показал все значения на терминале. Что-то вродеA = [[baby],[boy],[[…
16 июн '15 в 15:14
0 ответов

Пролог перестановка type_error

Хорошо, я пытаюсь использовать функцию перестановки, и я получаю странное исключение ошибки типа. permutation(X,[1,2,3]). X = [1,2,3] Когда я набираю точку с запятой, я получаю следующую ошибку: ERROR: Type error: 'character_code' expected, found '-…
18 июн '17 в 10:56