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)


Як це працює

  1. Створює новий список:

    • map застосовує надану процедуру до кожного елемента списку та збирає результати в новий список.
  2. Перетворює дані:

    • її використовують переважно для перетворення даних, а не для побічних ефектів.

Приклад: кілька списків

Якщо надано кілька списків, 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 можна ефективно створювати перетворені версії даних, зберігаючи вихідні списки без змін.