如何 运行 没有引用输出的 Racket 程序?
How to run a Racket program without output being quoted?
我有一个基本的 Racket 程序:
hello.rkt:
(write "Hello, World!")
当我 运行 它与 racket -f hello.rkt
时,我得到以下输出:
"Hello, World!"
是否有特殊的编译器标志或特殊版本的 "write/print" 从字符串输出中删除引号,以便显示:
Hello, World!
使用 display
代替 write
。
中的write
function is the dual to read
: it outputs (or at least attempts to output) datums that could be read
返回原值。根据我的经验,即使对于那个目的,它通常也不是很有用,但在调试时它会很有帮助。
实际输出,你要的函数是display
。这会将实际数据本身输出到输出端口,而不是它的格式化表示。
为了完整性,Racket 有一个额外的打印功能,称为 print
。与 display
和 write
不同,print
明确设计用于调试。它的输出可以通过各种不同的参数进行定制,所以输出格式使用它不一定是可预测的,除了调试之外不应该用于任何其他用途。不过,就此而言,它非常有用。
我有一个基本的 Racket 程序:
hello.rkt:
(write "Hello, World!")
当我 运行 它与 racket -f hello.rkt
时,我得到以下输出:
"Hello, World!"
是否有特殊的编译器标志或特殊版本的 "write/print" 从字符串输出中删除引号,以便显示:
Hello, World!
使用 display
代替 write
。
中的write
function is the dual to read
: it outputs (or at least attempts to output) datums that could be read
返回原值。根据我的经验,即使对于那个目的,它通常也不是很有用,但在调试时它会很有帮助。
实际输出,你要的函数是display
。这会将实际数据本身输出到输出端口,而不是它的格式化表示。
为了完整性,Racket 有一个额外的打印功能,称为 print
。与 display
和 write
不同,print
明确设计用于调试。它的输出可以通过各种不同的参数进行定制,所以输出格式使用它不一定是可预测的,除了调试之外不应该用于任何其他用途。不过,就此而言,它非常有用。