Racket 拍子:2htdp不读单词/行';保留最后换行信息?
我正在读2htdp的书,我对Racket 拍子:2htdp不读单词/行';保留最后换行信息?,racket,Racket,我正在读2htdp的书,我对2htdp/batch io下的read words/line函数的行为感到好奇 我创建了两个不同的文件,第一个文件在文件末尾有一个\n,第二个文件没有,如下所示: echo -ne "first line\n\nthird line\n" > file1.txt echo -ne "first line\n\nthird line" > file2.txt 如果我用读取单词/行读取每个文件,结果如下: (read-words/line "doc
2htdp/batch io
下的read words/line
函数的行为感到好奇
我创建了两个不同的文件,第一个文件在文件末尾有一个\n
,第二个文件没有,如下所示:
echo -ne "first line\n\nthird line\n" > file1.txt
echo -ne "first line\n\nthird line" > file2.txt
如果我用读取单词/行
读取每个文件,结果如下:
(read-words/line "doc/book/htdp2/data/file1.txt")
; => '(("first" "line") () ("third" "line"))
(read-words/line "doc/book/htdp2/data/file2.txt")
; => '(("first" "line") () ("third" "line"))
看起来函数没有保存第一个文件中最后一个换行符的信息
这种行为是故意的吗
我正在GNU/Linux机器上运行Dr Racket 6.2.1
谢谢,我会同意的。阅读单词/行的目的是为每一行阅读生成一个单词列表。一行通常是以换行符结尾的字符序列。文件的最后一行可以以“eof of file”结尾,而不是换行。如果您尝试此示例:
echo -ne "first line\n\nthird line\n\n" > file1.txt
我希望最后一行生成一个空的单词列表。正如您所说,这是预期的行为。我在racket用户论坛上打开了一个帖子,他们说这是他们想要的行为,并且已经添加到文档中。