有没有一种简单的方法可以让 "directory" 函数按字母顺序排列值?

Is there a easy way to get the "directory" function to put the values in alphabetical order?

使用目录函数检索子文件夹 "testfiles" 中以 .pas 结尾的文件的所有路径。到目前为止,一切都很好。问题是路径不是按字母顺序排列的。

列表中的路径不是字符串或列表,所以排序功能对我来说也不起作用。

有解决这个问题的简单方法吗?

代码:

(setq test (directory "testfiles/*.pas"))

Common Lisp 中的序列函数非常强大,通过各种关键字参数(:key、:test 等,取决于函数)。 SORT 采用可选的 :key 参数。

(sort (directory "testfiles/*.pas") #'string< :key #'pathname-name)

注:SORT为破坏性操作。但这在这里不是问题,因为 DIRECTORY 总是 returns 一个新鲜的 consed-up 列表。