Описание тега prolog-findall
NoneFindall/3 - это встроенный предикат ISO Prolog.
2
ответа
Поиск всех объединений в прологе
Я написал свой первый простой код в PROLOG: is_beginning([], _). is_beginning([FirstLetterB|RestWordB], [FirstLetterW|RestWordW]) :- FirstLetterB == FirstLetterW, is_beginning(RestWordB, RestWordW). Он предназначен для определения, равен ли первый а…
10 дек '12 в 10:10
3
ответа
Как получить список объектов в Прологе
Я выполнил некоторые прологические упражнения, когда столкнулся с некоторыми трудностями, решив следующие: представьте, что у вас есть эта база фактов об объекте: object(obj1). object(obj2). object(obj3). object(obj4). object(obj5). material(obj1,wo…
12 янв '10 в 22:13
2
ответа
Как вы можете добавлять элементы в список или вычислять их из базы знаний, не используя findall или assert/retract в Prolog?
У меня есть база знаний, которая состоит из базы данных студентов в файле 'Students.pl', как это: % student(Name,Percent,List_of_Marks_in_3_subjects). student('abc',83,[80,80,90]). student('pqr',70,[70,60,80]). student('xyz',76,[80,70,80]). Я хочу п…
19 фев '13 в 03:51
2
ответа
Findall/3 неправильно оценивается как ложный
Я создаю программу, которая должна разрешать поиск по графу, но функция, которая должна возвращать список узлов-преемников, терпит неудачу, когда вызов findall/3 оценивается как false. Когда я пытаюсь найти функцию findall отдельно от функции find_s…
30 ноя '16 в 19:46
0
ответов
Что означает эта ошибка? Исключение: (13) setup_call_catcher_cleanup
Что означает эта ошибка? И как мне это решить? (В теории, конечно.) Программа сложная, чтобы поставить здесь. ERROR: Out of global stack ^ Exception: (13) setup_call_catcher_cleanup('$bags':'$new_findall_bag', '$bags':findall_loop(_G15784496, user:m…
20 ноя '16 в 08:50
1
ответ
Альтернатива для поиска
Я пытаюсь создать альтернативу findall в прологе. Что у меня есть: solutions(A,T,S) :- T, assert(temp(A)), fail. solutions(A,T,S) :- obtain([],S). obtain(X,S) :- retract(temp(A)), obtain([A|X],S). obtain(S,S). Это, однако, дает мне противоречивые ре…
23 мар '15 в 18:39
1
ответ
Пролог - Операция внутри находки
Используя findall в Прологе, как я могу выполнять операции внутри цели, не влияя на возврат? Следующий пример объясняет, чего я пытаюсь достичь: value('M1', 11, 3). value('M2', 11, 3). connection('M1',1, 'A', 'B'). connection('M1',1, 'B', 'C'). conn…
08 янв '15 в 19:33
0
ответов
Пролог: создание списка с помощью findall с использованием пользовательского ввода
Итак, моя проблема заключается в следующем: Я должен создать список, используя команды findall / bagof / setof. Вот мой файл данных: musico('R. Stevie Moore'). musico('Lane Steinberg'). musico('Yukio Yung'). musico('Jessie Evans'). musico('Bettina K…
09 окт '15 в 14:58
0
ответов
Пролог найти все бесконечный цикл
У меня есть предикат, который утверждает вещи. Когда я использую findall, он входит в бесконечный цикл. assertarv([N|R]):- assert(veiculos_troncos(N)), assertarv(R). assertarv([]). Когда я использую findall(A,veiculos_troncos(A),NTr) после использов…
20 ноя '16 в 07:19
1
ответ
Перевести Haskell на Prolog - найти подсписок суммы
Я пытаюсь перевести следующий код на Haskell: -- sublistSums list sum returns a list of the sublists of list that add up to sum sublistSums :: [Int] -> Int -> [[Int]] sublistSums [] 0 = [[]] sublistSums [] _ = [] sublistSums (x:xs) sum = [x:ta…
10 апр '17 в 20:43
1
ответ
Findall внутри Findall
Можно ли сделать что-то подобное? --- база знаний --- linha( 5,[bobigny_pablo_picasso,bobigny_pantin_raymon_queneau,eglise_de_pantin,hoche, porte_de_pantin,ourcq,laumiere,jaures,stalingrad,gare_du_nord,gare_de_l_est, jacques_bonsergent,republique,ob…
08 янв '15 в 18:04
1
ответ
Как использовать tranpose и findall для печати всех переменных в предикате
Я хотел знать, как я мог бы использовать tranpose и findall для вывода списка всех переменных в предикате и отображения его в виде матрицы? так что это предикат со всеми переменными. across(2,4,2,4). across(2,10,2,4). across(3,4,4,12). across(3,10,2…
04 апр '16 в 20:01
1
ответ
Найти все решения в прологе
В прологе я пытаюсь объединить все действительные пары потребностей с ресурсами needs([ece2090,1,m,13,16]). needs([ece3520,1,tu,11,14]). needs([ece4420,1,w,13,16]). resources([joel, [ece2090,ece2010,ece3520,ece4420],[[m,13,16]]]). resources([sam, [e…
29 янв '15 в 23:21
1
ответ
Пролог, объединяющий предикаты
Просто небольшой вопрос о Прологе. Скажем, я использовал встроенный предикат findall/3 получить список и использовать переменную X как мой вывод. Мне интересно, как я мог бы затем использовать этот список в другом предикате, таком как last/2 чтобы н…
28 фев '16 в 15:24
1
ответ
Как использовать и внутри мета-предиката findall/3
Я хотел бы написать это: paths( Result ) :- findall( B, f(B) , Result ). f( B ) :- f1( B ), f2( B ). только в одной строке. Так что в основном что-то вроде: paths( Result ) :- findall( B, f1(B) AND f2(B), Result ). Я не знаю, как выразить "И" в пост…
17 янв '12 в 02:42
1
ответ
Пролог, прочитайте CSV-файл и сделайте предикат. найти все
Я использую SWI-Prolog. У меня есть CSV-файл, где в верхней строке находятся зонды, а затем каждая строка является примером: 1007_s_at 1053_at 117_at ... GSM102447.CEL 1 0 0 ... GSM102449.CEL 1 0 0 ... GSM102451.CEL 1 0 0 ... GSM102455.CEL 1 0 0 ...…
23 мар '14 в 12:40
4
ответа
Внедрение Prolog findall
Мне было поручено реализовать версию findall в Prolog без использования каких-либо встроенных программ Prolog, кроме not и cut - так что в основном в чистом Prolog. Я пытаюсь найти в дереве всех прямых потомков и вернуть результаты в виде списка. pa…
04 окт '11 в 12:17
1
ответ
Пролог findall/3: более одной сумки
Я пишу ИИ для игр типа Фокс и Гуси. Один из моих предикатов выглядит так: moveFox(+PrevState, -NextState, -PegList, +VisitedStates, -NewVisitedStates) Он принимает игровое состояние и делает ход с лисой. Полученное состояние унифицировано с NextStat…
10 апр '13 в 20:59
1
ответ
Findall с несколькими переменными в Прологе
Я хотел бы получить список решений из правила, которое я сделал в Прологе. Однако предикат findall работает только с одной переменной. Кто-нибудь может подсказать, как обойти это очевидное ограничение? Мое правило beat(P,M,E) Что я хочу L = [[P,M],[…
15 окт '16 в 16:43
0
ответов
Findall идет не так, как ожидалось
Я получил это правило: copiloting(Dev1, Dev2, Copiloting, AtRev) который дает мне номер Copiloting для двух человек Dev1 а также Dev2, Я хотел бы найти все Copiloting значения для каждой пары (Dev1, Dev2) возможно поэтому я сделал это правило: allCo…
01 авг '12 в 13:22