如何将列表中的元素移动到LISP中列表的前面

时间:2016-03-16 18:56:53

标签: lisp common-lisp

我正在尝试检查单词是否是列表的元素。然后它不会将单词添加到列表的前面,但是如果它将该单词移动到列表的前面。我可以将单词添加到列表中,如果它还没有,但我不知道如果它已经在列表中,如何将元素移动到列表的前面。这是我的代码:

(defun movetofront (word lst)
  (cond
    ((member word lst) 
     (remove word lst))
    (T (cons word lst)))) 

1 个答案:

答案 0 :(得分:5)

您无需检查是否存在:

(defun move-to-front (word list)
   (cons word (remove word list)))

请注意,如果wordstringyou will need to pass :testremove