У меня есть эта структура данных (в основном):
(setq ssm-list '(tasklist
((id . "10525295")
(name . "Inbox")
(sort_order . "0"))))
Это работает для получения имени:
(defun ssm-list-get-prop (list prop)
(cdr (assoc prop (car (cdr list)))))
(ssm-list-get-prop slack-one-list 'name)
Что бы я хотел, это создать макрос, который создаст defun с именем ssm-list-name
(или ssm-list-id
), поскольку на самом деле в списке гораздо больше свойств.
Итак, я попробовал это:
(defmacro ssm-list-prop-defun (field)
`(defun ,(intern (concat "ssm-list-" field))
(one-list)
(cdr (assoc ,field (car (cdr one-list))))))
(ssm-list-prop-defun 'name)
(ssm-list-prop-defun 'id)
Но последние два вызова с треском провалились с (wrong-type-argument characterp quote)
Я пытался вставить symbol-name
в макрос, но это не помогло.
Есть ли способ сделать это?