Прочитать строку из файла

Я пытаюсь понять, как прочитать строку из файла со схемой хитрости.

Когда я прошу его «прочитать порт» или «прочитать порт char», он успешно читает.

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.


person user6189164    schedule 23.05.2017    source источник


Ответы (1)


Ваш код завершается ошибкой с сообщением ERROR: Unbound variable: read-line, что означает отсутствие определения для readline.

Функция read-line должна быть загружена с использованием формы (use-modules (ice-9 rdelim)), прежде чем вы сможете ее использовать. (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))'
person Terje D.    schedule 25.05.2017