gpt4 book ai didi

lisp - 捕获 cl-fad :walk-directory output for finding files

转载 作者:太空宇宙 更新时间:2023-11-03 18:43:01 25 4
gpt4 key购买 nike

我已经为此苦苦挣扎了几个小时,我正在尝试编写一个类似于 unix 命令的查找文件函数。它的长短归结为不理解为什么我不能从 cl-fad:walk-directory 函数返回一个正确的值作为列表(cl-fad 在这里 http://weitz.de/cl-fad/)。

我正在尝试这样的事情:

(cl-fad:walk-directory "/tmp/" #'(lambda (file) (format nil "~a" file))))

但是得到'; REPL 没有任何值(value)。然而,下面用“format nil”代替...

(cl-fad:walk-directory "/tmp/" #'(lambda (file) (format t "~a" file)))

将我的/tmp/目录(及以下目录)中的所有文件打印到 STDOUT。但是,我无法将该输出收集到列表中。

我已经尝试了以下但没有成功。

(loop for f in (cl-fad:walk-directory 
"/tmp/"
#'(lambda (file) (format t "~a" file)))
collect (list f)))

最佳答案

walk函数不像mapcar那样收集返回值,它只是应用。您需要自己将输出保存在某个地方,可能会附加到全局列表或堆栈。

(let (files)
(cl-fad:walk-directory "/tmp/" #'(lambda (x) (push (namestring x) files)))
files)

请注意,namestring 从路径对象转换为文件名。

关于lisp - 捕获 cl-fad :walk-directory output for finding files,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3878687/

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