For example, the following concurrent logic program defines a predicate shuffle(Left, Right, Merge) , which can be used to shuffle two lists Left and Right, combining them into a single list Merge that preserves the ordering of the two lists Left and Right: shuffle(, , ). shuffle(Left, Right, Merge) :- Left = | Merge = , shuffle(Rest, Right, ShortMerge). shuffle(Left, Right, Merge) :- Right = | Merge = , shuffle(Left, Rest, ShortMerge).
Наприклад, наступна паралельна логічна програма визначає предикат shuffle (Left, Right, Merge) , який можна використовувати для перемішування двох списків вліво і вправо, об'єднуючи їх в один список Merge, який зберігає порядок двох списків вліво і вправо: shuffle (, , ). shuffle ( Left , Right , Merge ) : - Left = | Merge = , shuffle ( Rest , Right , ShortMerge ). shuffle ( Left , Right , Merge ) : - Right = | Merge = , shuffle ( Left , Rest , ShortMerge ).