Шаг 43.
Основы логического программирования.
Работа со списками

    На этом шаге мы рассмотрим работу со списками.

    В Прологе есть способ явно отделить голову от хвоста. Вместо разделения элементов запятыми, это можно сделать вертикальной чертой "|". Например:

   [а,b,с] эквивалентно [а| [b,с]]
и, продолжая процесс,
   [а| [b,с]] эквивалентно [а | [b| [с]]], что эквивалентно [а| [b| [с| [] ]]]
    Можно использовать оба вида разделителей в одном и том же списке при условии, что вертикальная черта есть последний разделитель. При желании можно набрать [а,b,с,d] как [a,b| [c,d]]. В таблице 1 вы найдете другие примеры.

Таблица 1. Головы и хвосты списков
Список Голова Хвост
['a','b','с'] 'a' ['b','с']
['a'] 'a' [] % пустой список
[ ] Не определена Не определен
[[1,2,3], [2,3,4],[ ]] [1,2,3] [[2,3,4],[ ]]

    В таблице 2 приведены несколько примеров на присвоение в списках.

Таблица 2. Присвоение в списках
Список 1 Список 2 Присвоение переменным
[X,Y,Z] [эгберт, ест,мороженое] Х=эгберг, У=ест, Z=мороженое
[7] [X | Y] Х=7,Y=[ ]
[1,2,3,4] [X, Y | Z] X=1, Y = 2, Z = [3,4]
[1,2] [3|X] fail % неудача

    На следующем шаге мы начнем рассматривать использование списков.




Предыдущий шаг Содержание Следующий шаг