如何 运行 没有引用输出的 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。与 displaywrite 不同,print 明确设计用于调试。它的输出可以通过各种不同的参数进行定制,所以输出格式使用它不一定是可预测的,除了调试之外不应该用于任何其他用途。不过,就此而言,它非常有用。