Функции для работы со списками

Функция $ListBuild

Позволяет создать список.

Синтаксис:

$LISTBUILD(element,...)

$LB(element,...)

Где element - это элемент списка, строка символов в кавычках. Разделитель элементов списка – запятая.

Например, создание списка X:

SET X=$LISTBUILD("Red","Blue","Green")

Set L1 = $ListBuild("красный", "зеленый", "голубой")

Приведем еще два примера:

Set list = "Becнa/Лeто/Oceнь/3имa"

Set address = "Петров И.П.^Калинин^192022^ул. Мира, 21, 10:65745 / 53221"

Второй пример показывает многие нюансы. Во-первых, строка символов, понимаемая как запись, представлена в форме списка с символом ^ в качестве разделителя. Далее, некоторые поля (иными словами, элементы списка) содержат подсписки, имеющие в свою очередь другие разделители, как показывает последний элемент списка, содержащий два телефонных номера.

Для управления этими списками подходят три основных элемента языка (см. также определения этих элементов языка в таблице):

§ двухаргументная форма функции $Length для определения числа элементов в списке

§ функция $Piece для выделения отдельных элементов списка

§ особая форма команды Set (левосторонняя форма) для создания или замены отдельных элементов списка.

>Write $Length(list, "/")

>Write $Piece(address, "^", 4)

Ул. Мира, 21, 10

>Set $Piece(address, "^", 2) = "Тверь"

>Write address

Петров И.П.^Тверь^192022^ул. Мира, 21, 10^65745 / 53221

$Length возвращает «длину» списка, когда в качестве второго аргумента указывается соответствующий разделитель списка.

$Piece возвращает один (или несколько) элементов списка, причем разделитель задается как второй аргумент.

Третий пример весьма содержателен, ибо с помощью этой особой формы команды Set могут быть заменены элементы списка. Здесь второй элемент списка заменяется новым, стоящим в правой части операции присваивания.

Пример.

Далее используются списки L1-L5, описанные в начале данного раздела. С помощью $ListBuild создаются списки.

>Set L1 = $ListBuild("красный", "зеленый", "голубой")

L1 = {красный, зеленый, голубой}

>Set L2 = $ListBuild()

пустой список L2 = {}

>Set L3 = $ListBuild("красный", "зеленый", , "голубой")

L3 = {красный, зеленый, , голубой}

>Set L4 = $ListBuild("красный", "зеленый", "", "голубой")

L4 = {красный, зеленый, "", голубой}

>Set L5 = $ListBuild("красный", $ListBuild("светлокрасный",

"оранжевый", "вишневокрасный"), "зеленый",

"голубой")

Аргументы $ListBuild могут представлять собой любые выражения:

Set list = $ListBuild(2 * x1, 3 * x2)

С помощью этой команды создается список с двумя числовыми элементами.

Kill var Set list = $ListBuild(var, 1)

Ссылка на неопределенную переменную в аргументе функции $ListBuild не приводит к ошибке. В примере создается список, первый элемент которого не определен, а второй имеет значение 1.

Пример. Списки могут соединяться с помощью оператора конкатенации. Именно поэтому выражение

$ListBuild("a", "b")_$ListBuild("c")

создает список с тремя элементами "а", "b" и "с". Заметим, что выражения

$ListBuild("a", "b")

$ListBuild("a", "b")_$ListBuild()

$ListBuild("a", "b")_$ListBuild("")

представляют собой три различных списка. Первый содержит два элемента, второй три, причем третий не определен, в то время как третий список также содержит три элемента, третий из которых — пустая строка.

Как много элементов содержит список? На этот вопрос отвечает функция $ListLength.

>Write $ListLength(L1) // выводит 3

>Write $ListLength(L2) // выводит 1

>Write $ListLength(L3) // выводит 4

>Write $ListLength(L4) // выводит 4

>Write $ListLength(L5) // выводит 4

$ListLength не распознает, является ли сам элемент списком, а лишь считает число первичных элементов списка. Таким образом, $ListLength не распознает элементы во вложенных списках.

Если в качестве аргумента используется любая строка символов, а не список, созданный $ListBuild, появляется сообщение об ошибке <list>.

Функция $ListLength

Возвращает количество элементов списка. Синтаксис:

$LISTLENGTH(list)

$LL(list)

Где list это список.

Например:

WRITE $LISTLENGTH($LISTBUILD("Red","Blue","Green")); вернет 3

WRITE $LISTLENGTH("") ; вернет 0

Функция $List

Извлекает один или несколько элементов списка.

Синтаксис:

$LIST(list,position,end)

$LI(list,position,end)

Где list это список, Position – задает начальную позицию элементов в списке, End –конечную позицию.

Извлекаемые элементы зависят от количества параметров:

• $LIST(list) возвращает первый элемент списка.

• $LIST(list,position) возвращает элемент в указанной позиции.

• $LIST(list,position,end) возвращает подсписок, содержащий элементы списка, начиная с позиции position и заканчивая end.

Например:

WRITE $LIST($LISTBUILD("RED","BLUE","GREEN")) ; напечатает RED

WRITE $LIST($LISTBUILD("RED","BLUE","GREEN"),1) ; напечатает RED

SET X=$LISTBUILD("Red","Blue","Green")

WRITE $LIST(X,2) ; напечатает Blue

SET X=$LISTBUILD("Green ","White ","Brown ","Black ")

SET LIST2=$LIST(X,3,-1)








Дата добавления: 2016-01-20; просмотров: 623;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.009 сек.