Подсписок
Рассмотрим теперь отношение подсписок.
Это отношение имеет два аргумента -
список L и список S, такой, что S содержится
в L в качестве подсписка. Так отношение
подсписок(
[c, d, e], [a, b, c, d, e, f] )
имеет место, а отношение
подсписок(
[c, e], [a, b, c, d, e, f] )
нет.
Его можно сформулировать так:
S является подсписком L, если
(1) L
можно разбить на два списка L1 и L2 и
(2) L2
можно разбить на два списка S и L3.
Как мы видели раньше, отношение конк
можно использовать для разбиения
списков. Поэтому вышеприведенную
формулировку можно выразить на Прологе
так:
подсписок(
S, L) :-
конк( L1, L2,
L),
конк( S, L3, L2).