Книга: Язык программирования Euphoria. Справочное руководство
2.2.6 Сечение рядов
2.2.6 Сечение рядов
Из ряда могут быть выделены несколько последовательных элементов путём задания в квадратных скобках номеров первого и последнего элементов выделяемого участка (отрезка). Например, если x равно {1, 1, 2, 2, 2, 1, 1, 1}, то отрезок x[3..5] будет представлять собой ряд {2, 2, 2}. x[3..3] будет равно ряду {2}. x[3..2] также разрешено, и выдает пустой ряд длины ноль {}. Если y имеет значение: {"fred", "george", "mary"}, то y[1..2] равно {"fred", "george"}.
Мы можем также использовать отрезки для переписывания порций ряда. После команды x[3..5] = {9, 9, 9} x будет равно {1, 1, 9, 9, 9, 1, 1, 1}. С тем же эффектом мы могли бы записать x[3..5] = 9. Предположим y равно {0, "Euphoria", 1, 1}. Тогда y[2][1..4] будет "Euph". Если мы напишем y[2][1..4]="ABCD", то y станет равным {0, "ABCDoria", 1, 1}.
В общем случае имя переменной могут сопровождать 0 или более индексирований за которыми следует 0 или 1 сечение. Только переменные и константы могут быть проиндексированы или рассечены, но не выражения.
В отношении пустых отрезков следует иметь в виду следующие детали. Рассмотрим отрезок s[i..j], где s имеет длину n. Отрезок от i до j, где j = i-1 и i >= 1 создает пустой ряд, даже если i = n+1. Таким образом, 1..0 и n+1..n, и все другие варианты внутри являются законными (пустыми) отрезками. Пустые отрезки весьма полезны во многих алгоритмах. Но отрезок от i до j, где j < i - 1 незаконен, т.е. "вывернутые" отрезки, такие как s[5..3], не разрешены.
С отрезками можно использовать сокращение $, то есть:
s[2..$]
s[5..$-2]
s[$-5..$]
s[$][1..floor($/2)] -- первая половина последнего элемента s
- ГЛАВА 4. ВОЗВРАТ И ОТСЕЧЕНИЕ
- 11.8. Пересечение минного поля безопасности: setuid root
- 5.2. Примеры, использующие отсечение
- 5.4. Трудности с отсечением и отрицанием
- Рядовые сотрудники
- 5.14.1 Пересечение точек монтирования в маршрутах поиска имен файлов
- 21.4.10. Отсечение
- 4.2. Отсечение
- 4.3.2. Комбинация «отсечение-fail»
- Отсечение
- Заполнение рядов
- Золотое сечение