以与从文本文件中获取的格式相同的格式创建新列表

时间:2015-06-10 10:27:47

标签: scheme racket

我试图创建文件中的内容列表,问题是列表是扁平的,它不包括换行符(\ r \ n)。

#lang racket
(define my-list '())

(define (read-all-file file-to-read)
  (for/list ([i (file->lines file-to-read)]) (
  set! my-list (foldr cons (list i) my-list))))

my-list

现在我的输出就是:

"lalala" "lalalall" "lalal"

而不是:

"lalala" 
"lalalall" 
"lalal"

有谁知道如何解决这个问题?我认为我这样做的方式会有效..这很奇怪:/

1 个答案:

答案 0 :(得分:2)

列表很好,这只是你显示元素的问题。如果要使用换行符显示它们,请执行以下操作:

(display (string-join my-list "\n"))

另一种选择是:

(for-each (lambda (e) (display e) (newline)) my-list)

无论哪种方式,它都按预期工作:

=> lalala
   lalalall
   lalal