карта

Функция 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, вы можете эффективно создавать преобразованные версии ваших данных, сохраняя при этом исходные списки неизменными.