Функционалы и макросы - 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))
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д