Lisp在列表中移动元素

时间:2013-02-01 16:49:12

标签: list lisp

我有一份表格清单:

(or a b c (and d e) f g (and h i) (==> x y))

我喜欢在and之后移动以or开头的子列表:

(or (and d e) (and h i) a b c f g (==> x y))

我该怎么做?我不确定什么是最好的方法,因为它是一个列表,我不能只是放置一个我想要的元素,就像我可以与其他数据结构一样。

1 个答案:

答案 0 :(得分:1)

? (stable-sort (rest '(or a b c (and d e) f g (and h i) (==> x y)))
               (lambda (x y)
                 (and (consp x) (eq (first x) 'and))))
((AND H I) (AND D E) A B C F G (==> X Y))