gpt4 book ai didi

scheme - 如果文件名已在列表中,则将其删除

转载 作者:行者123 更新时间:2023-12-02 07:10:29 27 4
gpt4 key购买 nike

我正在尝试从列表中删除一个项目(文件名),我所做的一切都不起作用,没有从文档中删除功能,也没有从该网站中删除任何内容。这是我的代码:

#lang racket

(define file-collection '())

(for ([f (directory-list)] #:when (regexp-match? "\\.log$" f))
(set! file-collection (foldr cons (list f) file-collection)))

(define (check-file file-in)
(for/list ([i (file->lines file-in)])
(cond ((equal? i "[robot warrior]") (remove file-in file-collection) ))))

(for ([i file-collection])(check-file i))

仍然,无论我尝试什么,文件集合保持不变,并且所有文件都包含在集合中..但是,如果我使用 displayln file-in,则仅显示没有 [robot Warrior] 的文件,那就是完美,这就是我所需要的,但我需要以某种方式存储它。我发现它无法正常工作非常奇怪/奇怪。

最佳答案

这里有两种从列表中删除某些文件的方法。

#lang racket

(define all-files '("file1" "file2" "file3" "file4"))

(for/list ([file all-files]
#:unless (equal? file "file2"))
file)

(filter (lambda (file) (not (equal? file "file2")))
all-files)

结果是:

'("file1" "file3" "file4")
'("file1" "file3" "file4")

请注意,for/listfilter 都不会从现有列表中删除元素,而是会生成具有相同元素的新列表(在本例中省略“file2”) .

关于scheme - 如果文件名已在列表中,则将其删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30763175/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com