如何在Racket中正确生成并输出多个换行符?
Racket生成多行换行符问题解决
你的代码(make-string n #\newline)本身是对的,它确实生成了包含n个换行符的字符串。问题出在输出方式——如果直接在REPL里返回这个字符串,Racket会用print函数显示,它会把换行符转义成\n字符串显示;而要实际输出换行,得用display函数。
给你两种解决方式:
- 直接在函数里用
display输出:
(define (newlines n) (display (make-string n #\newline)))
调用(newlines 4)就能看到4个实际换行。
- 保留生成字符串的功能,输出时手动用
display:
(define (newlines n) (make-string n #\newline)) ; 调用时这样输出 (display (newlines 4))
核心区别是:print会以字面形式展示字符串(包含转义字符),而display会输出字符串的实际内容,包括换行符的换行效果。
内容的提问来源于stack exchange,提问作者Sarah
相关产品推荐
相关产品推荐

