【发布时间】:2020-09-07 21:19:35
【问题描述】:
我正在尝试做的事情:我想定义一个函数create-record,它接受可变数量的参数(称为键的名称)并生成一个动态 plist/命名列表。
我只是想让它首先使用动态名称,然后将 1 分配给所有名称以创建像 (:x 0 :y 0 :z 0) 这样的列表,然后我可以修改它以同时接受键和值(而不是所有键都为 0 )
我的代码:
(defparameter *test* '('x 'y 'z))
(defun create-record (&rest keys)
(let ((count 0))
(mapcan (lambda (key) (list key count)) keys)))
输出
(create-record-variable *test*)
==> (('X 'Y 'Z) 0)
预期输出:
(create-record-variable *test*)
==> (:x 0 :y 0 :z 0)
我不确定为什么输出类似于(('X 'Y 'Z) 0)。
【问题讨论】:
标签: lisp common-lisp