1

我有一个关联列表如下:

(defparameter *experts2*
  `(
    ;; direction
    (:direction . ( (nn-direction-expert (process-signal) :number-of-neighbors 10)
                    (fn-direction-expert (process-signal) :number-of-neighbors 10) ))



    ;; evaluation
    (:evaluation . ( 

                    ;(avoid-line-crossing-evaluation-expert (process-signal))
                    (nn-single-evaluation-expert (candidate-point))
                    (fn-single-evaluation-expert (candidate-point))
                    ;(nn-all-evaluation-expert (ranking))
                    ))

    ;; coordination
    (:coordination . (
                      ;(ranking-process (candidate-point))
                      (action-process (candidate-point ranking))))))

我正在寻找一种方法,从 key=>value 列表中提取值并将它们放入一个新列表中,例如

(defparameter *experts*
  `(
    ;; direction
    (nn-direction-expert (process-signal) :number-of-neighbors 10)
    (fn-direction-expert (process-signal) :number-of-neighbors 10)

    ;eher als evaluationsexperte
    ;(avoid-line-crossing-evaluation-expert (process-signal) )

    ;; evaluation
    (nn-single-evaluation-expert (candidate-point))
    (fn-single-evaluation-expert (candidate-point))
    ;(nn-all-evaluation-expert (ranking))

    ;; coordination
    ;(ranking-process (candidate-point))
    (action-process (candidate-point ranking))
    ))

有什么建议么?谢谢你的帮助。

问候

4

2 回答 2

3

这似乎产生了你想要的答案,但它似乎不是很漂亮:

(mapcan #'copy-list (mapcar #'cdr *experts2*))
于 2013-01-18T21:55:05.770 回答
0

塞缪尔·埃德温·沃德(Samuel Edwin Ward)的答案有效,但这是另一个(现在已编辑以实际执行您需要的操作)。因此,您希望,对于 的每个元素*experts2*,获取其cdr,然后从返回的列表中获取值并将它们组合成一个列表:

(apply #'append (mapcan #'cdr *experts2*))
于 2013-01-19T05:42:47.220 回答