如何在lisp中迭代一个带参数的函数,而参数是文件名?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在lisp中迭代一个带参数的函数,而参数是文件名?相关的知识,希望对你有一定的参考价值。

我有20个文本文件在一个文件夹里,我找不到任何解决方案,如何我的主函数,只有一个参数调用这些文件(文件的扩展名是 "txt")。我试过用通配符,但我得到的总是路径名。我的文件夹名是textfiles,其中包括20个文件,当我运行程序时,我也不能有任何参数。

答案

你可以试试下面的方法。

(defun my-func (dir)
    (setq pathname (make-pathname :name :wild :type "txt" :defaults (pathname dir)))
    (loop 
      for file in (directory pathname) do 
        (print (file-namestring file))))

如果你想打印一个文件的完整路径 你可以用namestring代替file -namestring.

以上是关于如何在lisp中迭代一个带参数的函数,而参数是文件名?的主要内容,如果未能解决你的问题,请参考以下文章

在lisp中按值传递参数

在普通 lisp 中展开 / splat 参数

参数传递:shell脚本调用一个带参数的python函数

LISP - 通过其参数搜索特定功能的程序

Common Lisp:在 first、rest、last 中解构列表(如 Python 可迭代解包)

Common Lisp宏中的词法绑定