Перфо - Списки — различия между версиями
Линукс (обсуждение | вклад) м |
Тест (обсуждение | вклад) м |
||
(не показано 5 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
'''Перфо. Списки''' (из файла примера) | '''Перфо. Списки''' (из файла примера) | ||
− | |||
− | |||
− | |||
− | |||
В этом примере использованы следующие команды для работы со списком: | В этом примере использованы следующие команды для работы со списком: | ||
Строка 9: | Строка 5: | ||
(Список Элемент1 .. ЭлементН) - создание списка | (Список Элемент1 .. ЭлементН) - создание списка | ||
(Длина Список) - количество элементов списка (работает так же для строк и коллекций) | (Длина Список) - количество элементов списка (работает так же для строк и коллекций) | ||
− | (ПЭЛ Список Индекс) - получить значение элемента (работает так же для строк, массивов и индексируемых коллекций) | + | (ПЭЛ Список Индекс) - '''получить''' значение элемента (работает так же для строк, массивов и индексируемых коллекций). Если не указан Индекс то получает первый элемент списка. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | (УЭЛ Список Значение Индекс) - '''установить''' значение элемента (работает так же для массивов и индексируемых коллекций) | |
+ | (ОЭЛ Список) - возвращает список остальных элементов '''кроме первого''' (работает так же с массивами и индексируемыми коллекциями) | ||
+ | (Лев Список КоличествоЭлементов) - отрезать от списка '''слева''' указанное количество элементов | ||
+ | (Прав Список КоличествоЭлементов) - отрезать от списка '''справа''' указанное количество элементов | ||
+ | (Сред Список НомерНачальногоЭлемента КоличествоЭлементов) - отрезать ('''вырезать''') от списка указанное количество элементов начиная с указанного номера. | ||
+ | |||
+ | == Простой список == | ||
(Перем спис1 (Список 1 2 3 4 5)) | (Перем спис1 (Список 1 2 3 4 5)) | ||
(Вывод спис1 пс) | (Вывод спис1 пс) | ||
− | + | == Список с вычисляемыми элементами == | |
(Перем спис2 (Список (+ 1 2) (- 3 4 5))) | (Перем спис2 (Список (+ 1 2) (- 3 4 5))) | ||
(Вывод спис2 пс) | (Вывод спис2 пс) | ||
− | проверим, что это список | + | == Проверка типа переменной == |
+ | |||
+ | проверим, что это список (тип переменной) | ||
(Вывод "Список? " (Список? спис1) пс) | (Вывод "Список? " (Список? спис1) пс) | ||
− | + | == Длина списка == | |
(Вывод "длина списка: " (Длина спис1) пс) | (Вывод "длина списка: " (Длина спис1) пс) | ||
− | выводим | + | выводим 1-й элемент списка (т.к. не указан Индекс) |
(Вывод "первый элемент: " (ПЭЛ спис1) пс) | (Вывод "первый элемент: " (ПЭЛ спис1) пс) | ||
+ | |||
+ | (Вывод "первый элемент: " (Получить спис1) пс) | ||
выводим остальные элементы списка (это будет новый список без первого элемента) | выводим остальные элементы списка (это будет новый список без первого элемента) | ||
(Вывод "остальные элементы: " (ОЭЛ спис1) пс) | (Вывод "остальные элементы: " (ОЭЛ спис1) пс) | ||
+ | |||
+ | (Вывод "остальные элементы Кроме Первого: " (КромеПервого спис1) пс) | ||
в языке Перфо со списками могут работать функции Лев, Прав и Сред, так же как они работают со строками | в языке Перфо со списками могут работать функции Лев, Прав и Сред, так же как они работают со строками | ||
Строка 49: | Строка 52: | ||
(Вывод "Лев 2: " (Лев спис1 2) пс) | (Вывод "Лев 2: " (Лев спис1 2) пс) | ||
+ | (Вывод "Лев 2: " (Слева спис1 2) пс) | ||
отрежем слева ноль элементов | отрежем слева ноль элементов | ||
(Вывод "Лев 0: " (Лев спис1 0) пс) | (Вывод "Лев 0: " (Лев спис1 0) пс) | ||
+ | (Вывод "Лев 0: " (Слева спис1 0) пс) | ||
отрежем слева больше, чем есть в списке | отрежем слева больше, чем есть в списке | ||
(Вывод "Лев 20: " (Лев спис1 20) пс) | (Вывод "Лев 20: " (Лев спис1 20) пс) | ||
+ | (Вывод "Лев 20: " (Слева спис1 20) пс) | ||
отрежем 2 элемента справа | отрежем 2 элемента справа | ||
Строка 71: | Строка 77: | ||
В языке Перфо функция ПЭЛ может работать не только со списками но и со строками, массивами, а так же с коллекциями имеющими свойство Item. | В языке Перфо функция ПЭЛ может работать не только со списками но и со строками, массивами, а так же с коллекциями имеющими свойство Item. | ||
+ | |||
Причем, третьим операндом может быть указан индекс получаемого элемента, который по умолчанию равен нулю... | Причем, третьим операндом может быть указан индекс получаемого элемента, который по умолчанию равен нулю... | ||
проверим работу со списками | проверим работу со списками | ||
− | (Вывод "Второй элмент списка (Список 1 2 3): " (ПЭЛ (Список 1 2 3) 1) пс) | + | (Вывод "Второй элмент списка (Список 1 2 3): " (ПЭЛ (Список 1 2 3) 1) пс) |
проверим работу со строками | проверим работу со строками | ||
Строка 107: | Строка 114: | ||
проверим работу с массивами | проверим работу с массивами | ||
− | (УЭЛ мас "100") | + | (УЭЛ мас "100") |
− | (УЭЛ мас "300" 2) | + | (УЭЛ мас "300" 2) |
− | (Вывод "мас: " (мас.Представление) пс) | + | (Вывод "мас: " (мас.Представление) пс) |
проверим работу с коллекциями | проверим работу с коллекциями | ||
Строка 117: | Строка 124: | ||
(Вывод "Первый элемент коллекции: " (ПЭЛ кол) пс) | (Вывод "Первый элемент коллекции: " (ПЭЛ кол) пс) | ||
(Вывод "Второй элемент коллекции: " (ПЭЛ кол 1) пс) | (Вывод "Второй элемент коллекции: " (ПЭЛ кол 1) пс) | ||
+ | |||
+ | == Перфо. Примеры == | ||
+ | * [[Перфо. Пример 1]] | ||
+ | * [[Перфо. Пример 2]] | ||
+ | * [[Перфо. Пример 3]] | ||
+ | * [[Перфо - Списки]] | ||
+ | * [[Перфо - ПоВсем]] | ||
+ | * [[Перфо - ПоКаждому]] | ||
[[Категория:Перфо.NET]] | [[Категория:Перфо.NET]] |
Текущая версия на 23:23, 27 октября 2020
Перфо. Списки (из файла примера)
В этом примере использованы следующие команды для работы со списком:
(Список Элемент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
- Перфо - Списки
- Перфо - ПоВсем
- Перфо - ПоКаждому