2013-02-01 81 views
0

我有以下形式的列表:Lisp的移動元素

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

和我一樣的or這樣後and移動子列表開始:

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

我怎樣才能做這個?我不知道什麼是最好的方式,因爲它是一個列表,我不能只是把我想要的任何元素,就像我可以與其他數據結構一樣。

回答

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)) 
+0

謝謝,但初始或究竟在哪裏? – user2033237

+0

好吧,我明白了 – user2033237