Разработать алгоритм для поиска по списку - Prolog
Формулировка задачи:
Немного в ступоре. Не могу разработать алгоритм, для поиска по списку.
Вкратце, задача такова:
начальные данные: список, каждый член имеет вид: А(С) или А, где А - символы, а С - число, заключённое в скобки. Например
List=[qweq,fdsdf(1), asd(0), asd(1), kxck(3)]. Данные будут читаться из файла, и будут без кавычек (одиночных и/или двойных).
Мне необходимо составить список (или выводить на монитор) генерированные данные по следующим критериям:
1. Если в элементе списка скобки и число между ними отсутствует, то элемент не обрабатывается, переходим к следующему
2. Для всех остальных, должны выводится отсутствующие элементы списка, часть А которых должна присутствовать среди элементов, а часть С - отсутствовать.
Для моего примера: List=[qweq,fdsdf(1), asd(0), asd(1), kxck(3)]. предикат должен вывести
fdsdf(0), fdsdf(3), asd(3), kxck(0), kxck(1).
Задачу я могу решить "не по проложному". Найти уникальные значения А, С и далее, как-то перебирать.
Решение задачи: «Разработать алгоритм для поиска по списку»
textual
Листинг программы
?- List=[qweq, fdsdf(1), asd(0), asd(1), kxck(3)], setof( N, X^F^(member(X, List), X =.. [F, N]), Ns). List = [qweq, fdsdf(1), asd(0), asd(1), kxck(3)], Ns = [0, 1, 3].
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д