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

如何在LISP中将列表中的元素移动到列表的前面,lisp,common-lisp,Lisp,Common Lisp,我试图检查一个单词是否是列表中的一个元素。如果不是,则将该单词添加到列表的前面,但如果是,则将该单词移动到列表的前面。如果单词不在列表中,我可以将其添加到列表中,但是如果元素已经在列表中,我不知道如何将其移动到列表的前面。这是我的密码: (defun movetofront (word lst) (cond ((member word lst) (remove word lst)) (T (cons word lst)))) 您不必检查是否存在: (defun

我试图检查一个单词是否是列表中的一个元素。如果不是,则将该单词添加到列表的前面,但如果是,则将该单词移动到列表的前面。如果单词不在列表中,我可以将其添加到列表中,但是如果元素已经在列表中,我不知道如何将其移动到列表的前面。这是我的密码:

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

您不必检查是否存在:

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

请注意,如果
word
是,例如,一个
字符串
,则不必检查是否存在:

(defun move-to-front (word list)
   (cons word (remove word list)))
请注意,如果
单词
是,例如
字符串
,则为