ファイルから1行ずつ読み込んで処理をするやり方。
(define main (lambda (args) (with-input-from-file (cadr args) (lambda () (port-for-each print read-line)))))
この例では print してるだけだけど、代わりにここに行を処理する関数を入れてやればいい。
^o^ > type foo.txt foo bar baz ^o^ > gosh read-each-lines.scm foo.txt foo bar baz
次は行ごとのリストにする方法。
(define main (lambda (args) (print (call-with-input-file (cadr args) port->string-list))))
^o^ > gosh read-lines-list.scm foo.txt (foo bar baz)
最後に、ファイル全体を文字列にするには:
(define main (lambda (args) (print (call-with-input-file (cadr args) port->string))))
^o^ > gosh read-lines-string.scm foo.txt foo bar baz