从文件中读取一行
Read a line from a file
我正在尝试弄清楚如何使用 guile 方案从文件中读取一行。
当我要求它 "read port" 或 "read-char port" 时,它成功读取。
guile -c '(let ((port (open-input-file "foo.txt"))) (display (read port)) (newline) (close-port port))'
但是,当我要求它读取行时,它失败了。
guile -c '(let ((port (open-input-file "foo.txt"))) (display (read-line port)) (newline) (close-port port))'
有谁知道我做错了什么?我目前在foo.txt所在目录
您的代码失败并显示消息 ERROR: Unbound variable: read-line
,这意味着 readline
没有定义。
必须使用 (use-modules (ice-9 rdelim))
形式加载函数 read-line
才能使用它。 (https://www.gnu.org/software/guile/manual/html_node/Input-and-Output.html)
这将起作用:
guile -c '(use-modules (ice-9 rdelim)) (let ((port (open-input-file "foo.txt")))
(display (read-line port)) (newline) (close-port port))'
我正在尝试弄清楚如何使用 guile 方案从文件中读取一行。
当我要求它 "read port" 或 "read-char port" 时,它成功读取。
guile -c '(let ((port (open-input-file "foo.txt"))) (display (read port)) (newline) (close-port port))'
但是,当我要求它读取行时,它失败了。
guile -c '(let ((port (open-input-file "foo.txt"))) (display (read-line port)) (newline) (close-port port))'
有谁知道我做错了什么?我目前在foo.txt所在目录
您的代码失败并显示消息 ERROR: Unbound variable: read-line
,这意味着 readline
没有定义。
必须使用 (use-modules (ice-9 rdelim))
形式加载函数 read-line
才能使用它。 (https://www.gnu.org/software/guile/manual/html_node/Input-and-Output.html)
这将起作用:
guile -c '(use-modules (ice-9 rdelim)) (let ((port (open-input-file "foo.txt")))
(display (read-line port)) (newline) (close-port port))'