如何使用Common-lisp格式函数读取文件?

时间:2016-02-14 03:41:00

标签: common-lisp

这是我自己写的:

(defun test (x)
  (with-open-file (stream x :if-does-not-exist nil)
     (let ((read-line-1 (read-line stream))
          ((read-line-2 (read-line stream)))
       (format t "This is the test-1     ~s~%" read-line-1)
       (format t "This is the test-2     ~s~%" read-line-2))))

我只想知道如何读取一个文件,谢谢

1 个答案:

答案 0 :(得分:0)

您的代码中存在基本拼写错误,read-line-2的绑定周围有一个额外的括号。您可能想要的是

   (let ((read-line-1 (read-line-stream))
         (read-line-2 (read-line-stream))) ...

如果您输入在编辑器中发布的代码,该代码会根据标准自动缩进Lisp代码,您将看到format行实际上要求绑定名为format的变量。如果您尝试编译您发布的代码,您的编译器可能会抱怨(read-line-2 ...不是符号。

如果您修复了额外的括号,问题的第二部分可能是参数x需要是“路径名指示符”,您可能没有为您的实现正确指定。

    (test-2 #P"/home/user/fammmm/foo.txt")

可能就是你想要的。