карта
Функция map в Scheme используется для применения процедуры к каждому элементу списка (или нескольких списков) и возврата нового списка, содержащего результаты. Это делает его идеальным для преобразования данных.
Самая простая форма map выглядит так:
(map procedure list)- Процедура: функция, применяемая к каждому элементу списка.
- Список: список, элементы которого будут преобразованы.
Пример: удвоение каждого элемента
(define (double x)
(* x 2))
(map double (list 1 2 3 4))- Здесь функция
doubleприменяется к каждому элементу списка(1 2 3 4). - Результатом является новый список, в котором каждый элемент удвоен.
Вывод: (2 4 6 8)
Как это работает
Создает новый список:
mapприменяет предоставленную процедуру к каждому элементу списка и собирает результаты в новый список.
Преобразует данные:
- Он в основном используется для преобразования данных, а не для выполнения побочных эффектов.
Пример: использование нескольких списков
Если предоставлено несколько списков, map обрабатывает соответствующие элементы из каждого списка.
(define (sum x y)
(+ x y))
(map sum (list 1 2 3) (list 4 5 6))- Функция
sumдобавляет соответствующие элементы из двух списков и возвращает результаты в виде нового списка.
Вывод: (5 7 9)
Резюме
— Функция map — мощный инструмент для преобразования списков путем применения процедуры к каждому элементу.
- В отличие от
for-each,mapсоздает новый список, содержащий результаты применения процедуры. - Он поддерживает несколько списков, позволяя выполнять поэлементные операции над ними.
Используя map, вы можете эффективно создавать преобразованные версии ваших данных, сохраняя при этом исходные списки неизменными.