Перфо - Списки
Перфо. Списки (из файла примера)
В этом примере использованы следующие команды для работы со списком:
(Список Элемент1 .. ЭлементН) - создание списка (Длина Список) - количество элементов списка (работает так же для строк и коллекций) (ПЭЛ Список Индекс) - получить значение элемента (работает так же для строк, массивов и индексируемых коллекций). Если не указан Индекс то получает первый элемент списка.
(УЭЛ Список Значение Индекс) - установить значение элемента (работает так же для массивов и индексируемых коллекций) (ОЭЛ Список) - возвращает список остальных элементов кроме первого (работает так же с массивами и индексируемыми коллекциями) (Лев Список КоличествоЭлементов) - отрезать от списка слева указанное количество элементов (Прав Список КоличествоЭлементов) - отрезать от списка справа указанное количество элементов (Сред Список НомерНачальногоЭлемента КоличествоЭлементов) - отрезать (вырезать) от списка указанное количество элементов начиная с указанного номера.
Содержание
Простой список
(Перем спис1 (Список 1 2 3 4 5)) (Вывод спис1 пс)
Список с вычисляемыми элементами
(Перем спис2 (Список (+ 1 2) (- 3 4 5))) (Вывод спис2 пс)
Проверка типа переменной
проверим, что это список (тип переменной)
(Вывод "Список? " (Список? спис1) пс)
Длина списка
(Вывод "длина списка: " (Длина спис1) пс)
выводим 1-й элемент списка (т.к. не указан Индекс)
(Вывод "первый элемент: " (ПЭЛ спис1) пс)
(Вывод "первый элемент: " (Получить спис1) пс)
выводим остальные элементы списка (это будет новый список без первого элемента)
(Вывод "остальные элементы: " (ОЭЛ спис1) пс) (Вывод "остальные элементы Кроме Первого: " (КромеПервого спис1) пс)
в языке Перфо со списками могут работать функции Лев, Прав и Сред, так же как они работают со строками
эти функции возвращают новый список, даже если в нем один элемент, или даже пустой список, если нечего возвращать
отрежем 2 элемента слева
(Вывод "Лев 2: " (Лев спис1 2) пс) (Вывод "Лев 2: " (Слева спис1 2) пс)
отрежем слева ноль элементов
(Вывод "Лев 0: " (Лев спис1 0) пс) (Вывод "Лев 0: " (Слева спис1 0) пс)
отрежем слева больше, чем есть в списке
(Вывод "Лев 20: " (Лев спис1 20) пс) (Вывод "Лев 20: " (Слева спис1 20) пс)
отрежем 2 элемента справа
(Вывод "Прав 2: " (Прав спис1 2) пс)
отрежем справа ноль элементов
(Вывод "Прав 0: " (Прав спис1 0) пс)
отрежем справа больше, чем есть в списке
(Вывод "Прав 20: " (Прав спис1 20) пс)
В языке Перфо функция ПЭЛ может работать не только со списками но и со строками, массивами, а так же с коллекциями имеющими свойство Item.
Причем, третьим операндом может быть указан индекс получаемого элемента, который по умолчанию равен нулю...
проверим работу со списками
(Вывод "Второй элмент списка (Список 1 2 3): " (ПЭЛ (Список 1 2 3) 1) пс)
проверим работу со строками
(Вывод "Третий символ из строки АБВГД: " (ПЭЛ "АБВГД" 2) пс)
проверим работу с массивами
(Перем мас (Массив 5 Строка)) (мас.Установить "Строка с индексом 2." 2) (Вывод "Значение элемента массива с индексом 2: " (ПЭЛ мас 2) пс)
проверим работу с коллекциями
(Перем кол (Новый Массив)) (кол.Добавить "А") (кол.Добавить "Б") (кол.Добавить "В") (Вывод "Второй элемент коллекции: " (ПЭЛ кол 1) пс)
функция УЭЛ может установить значение элемента в списке, в массиве или в индексируемой коллекции
проверим работу со списками
(Перем спис4 (Список 1 2 3)) (УЭЛ спис4 100) (УЭЛ спис4 200 1) (УЭЛ спис4 300 2) (Вывод "Спис4: " спис4 пс)
проверим работу с массивами
(УЭЛ мас "100") (УЭЛ мас "300" 2) (Вывод "мас: " (мас.Представление) пс)
проверим работу с коллекциями
(УЭЛ кол "100") (УЭЛ кол "200" 1) (Вывод "Первый элемент коллекции: " (ПЭЛ кол) пс) (Вывод "Второй элемент коллекции: " (ПЭЛ кол 1) пс)
Перфо. Примеры
- Перфо. Пример 1
- Перфо. Пример 2
- Перфо. Пример 3
- Перфо - Списки
- Перфо - ПоВсем
- Перфо - ПоКаждому