为什么这个列表在球拍中只有无效项目
Why this list has only void items in Racket
我尝试使用此页面上的代码让用户输入功能:
(define entry_list (for/list ([line (in-lines)]
#:break (string=? line "done"))
(println line)))
(println entry_list)
输出为:
this
"this "
is
"is "
a
"a "
test
"test"
for testing only
"for testing only"
done
'(#<void> #<void> #<void> #<void> #<void>)
为什么列表只包含 "void" 项?
那是因为println
函数returns #<void>
。如果你不使用 println 而是为每一行输入 return 不同的值,你最终会得到一个更有趣的列表。
例如,以下代码应该 return 包含您输入的行的列表:
(define entry_list
(for/list ([line (in-lines)]
#:break (string=? line "done"))
line))
如果您只想打印这些行,那么您可以使用 for
而不是 for/list
,以避免在末尾创建无用的空白列表:
我尝试使用此页面上的代码让用户输入功能:
(define entry_list (for/list ([line (in-lines)]
#:break (string=? line "done"))
(println line)))
(println entry_list)
输出为:
this
"this "
is
"is "
a
"a "
test
"test"
for testing only
"for testing only"
done
'(#<void> #<void> #<void> #<void> #<void>)
为什么列表只包含 "void" 项?
那是因为println
函数returns #<void>
。如果你不使用 println 而是为每一行输入 return 不同的值,你最终会得到一个更有趣的列表。
例如,以下代码应该 return 包含您输入的行的列表:
(define entry_list
(for/list ([line (in-lines)]
#:break (string=? line "done"))
line))
如果您只想打印这些行,那么您可以使用 for
而不是 for/list
,以避免在末尾创建无用的空白列表: