map
Функція 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 можна ефективно створювати перетворені версії даних, зберігаючи вихідні списки без змін.