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

Obi*_*obe 1 lisp common-lisp

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

(defun movetofront (word lst)
  (cond
    ((member word lst) 
     (remove word lst))
    (T (cons word lst)))) 
Run Code Online (Sandbox Code Playgroud)

sds*_*sds 5

您无需检查是否存在:

(defun move-to-front (word list)
   (cons word (remove word list)))
Run Code Online (Sandbox Code Playgroud)

请注意,如果word是,例如,a string,则需要传递:testremove.