То, что я в принципе хочу достичь в том, что данный список списков , я хочу, предикат, который проверяет, является ли элементы списка B являются точно содержатся в перечне A.Пролог, Список списков содержит еще один список точно
Так, например:
= [[1,2], [3,4], [5], []] В = [1,2,3,4, 5]
и
= [[1,2], [3,4], [5], []] В = [2,5,3,4,1 ]
бы привести к истине, но
= [[1,2], [3,4], [5], []] В = [1,2,3,4]
и
= [[1,2], [3,4], [5], []] В = [1,2,3,4,5,6]
оба результата будут ошибочными.
это возможно в прологе?
Точно означает: Заказ не имеет значения, он просто должен содержать все элементы. Также представьте, что список B не содержит дубликатов. Итак, если A будет содержать дубликаты, в результате мы должны получить false.
Конечно, это возможно. В прологе есть * предикаты *, а не * функции *. Они на самом деле не то же самое и не имеют такого же поведения. Вы должны посмотреть на 'flatten/2', который сделает это простым. – lurker
Все еще непонятно, что именно ** означает **, на основе ваших примеров. Означает ли порядок? Что происходит с повторениями? –
[append] (http://www.swi-prolog.org/pldoc/doc_for?object = append/2)/2 может быть и ответить – CapelliC