Перфо - ПоВсем

Материал из ТХАБ.РФ
Версия от 17:05, 27 октября 2020; Линукс (обсуждение | вклад) (Новая страница: «'''ПоКаждому''' - является расширенным аналогом действия map из языка Scheme. В отличие от языка…»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

ПоКаждому - является расширенным аналогом действия map из языка Scheme. В отличие от языка Scheme, может работать не только со списками, но и с массивами или коллекциями.

(ПоКаждому функция аргумент1 ... аргументН), где аргумент это значение, список или коллекция

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

Возвращается список результатов выполнения функции.

Например, если у нас есть два списка (Список 1 2 3) (Список 3 4 5),

к которым применяется функция (функ (х у)(+ х у)), которая складывает значения параметров.

Тогда сначала функция будет вызвана для первых элементов Ф(1, 3),

а затем для вторых элементов Ф(2, 4) и для третьих элементов Ф(3, 5),

и в результате мы получим новый список (4,6,8).


Если вместо списка задано значение, то оно считается первым элементом списка по умолчанию.

Если в одном из списков элементов меньше, чем в других, то именно это число элементов будет обработано.


тут у нас один список, поэтому и функция с одним параметром

(Вывод  "Один список = " (ПоКаждому (функ (х)(+ х х)) (Список 4 5 6)) пс)
а тут у нас два списка и, соответственно, функция с двумя параметрами 
Внимание!!! В первом списке последний элемент не используется, т.к. во втором меньше элементов!

(Вывод "Два списка = " (ПоКаждому (функ (х у)(+ х у)) (Список 1 2 3 4) (Список 4 5 6)) пс)

попробуем с заранее определенной функцией

(функция (СложитьПараметры х у)(+ х у))
(Вывод "Функция СложитьПараметры = " (ПоКаждому СложитьПараметры (Список 2 3 4) (Список 4 5 6)) пс)

попробуем обычные значения

(Вывод "Обычные значения = " (ПоКаждому + 4 6 7 8) пс)
проверим коллекции
(Перем мас1 (Массив 2 Целое 1 2 3))
(Перем мас2 (Массив 2 Целое 10 20 30))
(Вывод "Массивы = " (ПоКаждому (функ (х у)(+ х у)) мас1 мас2) пс)

список и массив

(Вывод "Список и массив = " (ПоКаждому (функ (х у)(+ х у)) (Список 1 2 3 4) мас1) пс)