Функционалы и макросы - Lisp

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

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

Помогите на Lisp с помощью функционалов и (или) макросов создать новую синтаксическую форму:

(СОЗДАТЬ_A-LIST (список ключей) (выражение1) (выражение2)…(выражениеN)) Создать ассоциативный список с заданными ключами и объектами-выражениями

Решение задачи: «Функционалы и макросы»

textual
Листинг программы
  1. ;; Если ключи и значения задаются списками:
  2.  
  3. (defun make-alist (keys vals)
  4.   (mapcar 'cons keys vals))
  5.  
  6. ==> make-alist
  7.  
  8. (make-alist '(k1 k2 k3 k4) '(v1 v2 v3 v4))
  9.  
  10. ==> ((k1 . v1) (k2 . v2) (k3 . v3) (k4 . v4))
  11.  
  12. ;; Если ключи задаются списком, а значения - врассыпную:
  13.  
  14. (defun make-alist (keys &rest vals)
  15.   (mapcar 'cons keys vals))
  16.  
  17. ==> make-alist
  18.  
  19. (make-alist '(k1 k2 k3 k4) 'v1 'v2 'v3 'v4)
  20.  
  21. ==> ((k1 . v1) (k2 . v2) (k3 . v3) (k4 . v4))

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


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

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

12   голосов , оценка 3.833 из 5

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

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

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