Пятница, 03.05.2024, 14:54
Приветствую Вас Гость | RSS

Язык программирования ПРОЛОГ

Списки

Использование списков

   Список – специальный вид сложного терма, состоящий из последовательности термов, заключенных в [ ] и разделенных запятыми.

domains

      list = integer* % целочисленный список

Если элементы списка имеют смешанный тип, то должно быть соответствующее описание:

domains

      element = c (char); i (integer)

      >list = element*

[c(‘a’), i(6), i(-8), c(‘X’)]

   Списки являются основной структурой программы на ТП. Для удобства обработки введены два понятия: голова (head), хвост (tail).

Основные примеры обработки списков:


Список

Голова

Хвост

[‘a’, ‘b’, ‘c’]

a

[‘b’, ‘c’]

[1]

1

[ ]

[ ]

не определена

не определена

[[1, 2, 3], [2, 3, 4], [  ]]

[1, 2, 3]

[[2, 3, 4], [ ]]


Для отделения головы спсика от хвоста используется символ "|” [X|Y].

Примеры работы со списком

Сцепление двух спиcков.

concat ([ ], L, L).

concat ([H|T], L2, [H|T3]):- concat (T, L2, T3).

Добавление элемента Х к началу списка L

add (X, L, [X|L]

в конец

add_end (X, L, L1)

add_end (X, [ ], [X]).

add_end (X, [H|T], [H|T1]):- add_end (X, T, T1).

обращение списка

domains

      l =real*

predicates

      revers (l, l)

      reversl (l, l, l)

clauses

      revers (L, Lr):- reversl (L, [ ], Lr).

      reversl ([ ], Lr, Lr)./span>

reversl ([H|T], L, Lr):- reversl (T, [H|L], Lr).
Меню сайта
Форма входа
Поиск
Календарь
«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Copyright Long Time Ago © 2024
Сделать бесплатный сайт с uCoz