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

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

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

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

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

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

textual
Листинг программы
;; Если ключи и значения задаются списками:
 
(defun make-alist (keys vals)
  (mapcar 'cons keys vals))
 
==> make-alist
 
(make-alist '(k1 k2 k3 k4) '(v1 v2 v3 v4))
 
==> ((k1 . v1) (k2 . v2) (k3 . v3) (k4 . v4))
 
;; Если ключи задаются списком, а значения - врассыпную:
 
(defun make-alist (keys &rest vals)
  (mapcar 'cons keys vals))
 
==> make-alist
 
(make-alist '(k1 k2 k3 k4) 'v1 'v2 'v3 'v4)
 
==> ((k1 . v1) (k2 . v2) (k3 . v3) (k4 . v4))

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


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

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

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