Прохождение править

Когда серия - упорядоченное множество значений, вы можете пройти одну ее позицию за другой. Для примера можно взять блок из трех простых элементов.

colors: [red green blue]

Первая позиция в блоке называется головой. Эту позицию занимает первое слово. Последняя позиция блока называется хвостом. Эта позиция следует сразу за последним словом в блоке. Хвост - только путь к концу блока. Если ввести слово переменную как имя блока, то переменная будет ссылкой на блок. Это текущее место для головы блока.

print head? colors
true

Переменная есть первый индекс позиция блока.

print index? colors
1

Наш блок имеет длину равную 3.

print length? colors
3

Мы можем получить или вывести первый или второй элементы блока.

print first colors
red
print second colors
green

Мы можем репозиционировать переменную в блоке используя различные функции, например, сдвинуть на одну позицию.

colors: next colors

Тогда, например, переменная имени блока уже не будет в голове, но займет место первого элемента в блоке, а второй станет первым.

print head? colors
false

Однако длина блока уменьшиться на один и станет 2, где будет теперь последний третий элемент.

print index? colors
2
print first colors
green

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

print length? Colors
2
print second colors
blue
colors: next colors

Для того, чтобы достичь хвоста переменную имени надо сдвинуть еще раз.

print index? colors
3
print first colors
blue
print length? colors
1
print tail? colors
false
colors: next colors

Тогда длина блока будет 0, но индекс позиции имени 4.

print tail? colors
true
print index? colors
4
print length? Colors
0
print first colors
** Script Error: Out of range or past end.
** Where: print first colors

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

colors: back color
sprint index? colors
3
print first colors
blue

Функции править

Типы данных править

Информация править

Создание и копирование править

Итерация править

Поиск править

Сортировка править

Множество данных править

Умножение переменных править

Модификация параметров править