首页 > 解决方案 > 如何将元素移动到列表的前面

问题描述

我必须在 dr.racket 中列出一个列表,检查一个数字/值是否在列表中,如果是,它应该将它移到前面。我的问题是第三个条件,它应该从列表中删除类似的值并使用 cons 再次将其添加到列表中,但它不起作用

(define (move-to-front lst value)
  (cond
    [(empty? lst) #f]
    [(equal? value (first lst)) lst]
    [(equal? value (first(rest lst))) ((remove (first (rest lst)) lst)(cons value lst))]
    [else (move-to-front (rest(rest lst)) value)]))

标签: listracket

解决方案


推荐阅读