我最近发现了一种奇怪的球拍行为:无论何时我尝试过滤通过directory-list
创建的目录列表,我的REPL都会返回一个空列表,但当我尝试使用quasiquoted列表时,我的REPL会返回正确过滤的列表。如何通过“目录存在?”过滤目录列表?
我的问题是现在:为什么它不可能通过directory-exists?
过滤目录列表,以及它如何可能要列出球拍只有目录?
一些例子:
当我结合使用directory-exists?
与filter
和directory-list
的REPL返回我每次一个空列表:
(filter directory-exists? (map path->complete-path
(directory-list (expand-user-path "~"))))
;; '()
现在,当我筛选的quasiquoted列表如下例所示。该REPL返回正确的过滤列表,所有的现有目录(不虚目录~/blablubb
)
(filter directory-exists?
(map path->complete-path `(,(path->complete-path (expand-user-path "~/documents"))
,(expand-user-path "~/blablubb"))))
;; '(#<path:/home/niklas/documents>)
非常感谢!我将你的评论标记为正确的答案,因为那正是如何解决问题。 –