编写将创建函数的Lisp函数/宏

时间:2015-12-06 20:46:18

标签: lisp common-lisp

我想编写一个函数/宏来编写一个将创建列表结构的宏。什么是一个好的起点。我希望做(mkList id name phone)这样的事情并让它产生(defun (id name phone) (list :id id :name name :phone phone)),最好使用& rest。任何想法?

2 个答案:

答案 0 :(得分:1)

这应该给你一些提示:

CL-USER 39 > (defun foo (l)
               (cons 'list
                     (mapcan (lambda (e)
                               (list (intern (symbol-name e)
                                             (find-package "KEYWORD"))
                                     e))
                             l)))
FOO

CL-USER 40 > (foo '(a b c))
(LIST :A A :B B :C C)

答案 1 :(得分:0)

(defun mkcode(item)(eval(read-from-string item))) 是什么对我有用,让我有很大的灵活性