Определить функцию, объединяющую атомы двух списков - Lisp

Узнай цену своей работы

Формулировка задачи:

Помогите определить функцию, объединяющую атомы двух списков в один ассоциативный список ((x1.y1)(x2.y2)(x3.y3) ... ...) а) для списка из атомов б) для списка, содержащего подсписки

Решение задачи: «Определить функцию, объединяющую атомы двух списков»

textual
Листинг программы
  1. (defun task (l1 l2)
  2.   (mapcar 'cons l1 l2))
  3.  
  4. ==> TASK
  5.  
  6. (task '(a b c d) '(1 2 3 4))
  7.  
  8. ==> ((A . 1) (B . 2) (C . 3) (D . 4))

Объяснение кода листинга программы

В данном коде определена функция с именем TASK. Она принимает два аргумента типа списков (l1 и l2). Внутри функции происходит следующее:

  1. Выполняется операция MAPCAR, которая применяет функцию CONS к каждому элементу списков l1 и l2.
  2. Результатом выполнения функции является список, содержащий кортежи, где каждый кортеж состоит из элемента из первого списка (l1) и элемента из второго списка (l2), связанных между собой операцией CONS. Пример вызова функции TASK: (task '(a b c d) '(1 2 3 4)) Результатом выполнения данного кода будет список: ((A . 1) (B . 2) (C . 3) (D . 4))

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы