如何在没有引出输出的情况下运行Racket程序?

Dmi*_*try 3 scheme racket

我有一个基本的球拍程序:

hello.rkt:

(write "Hello, World!")
Run Code Online (Sandbox Code Playgroud)

当我运行它时racket -f hello.rkt,我得到以下输出:

"Hello, World!"
Run Code Online (Sandbox Code Playgroud)

是否有一个特殊的编译器标志,或"write/print"的特殊版本,它从字符串输出中删除引号,因此它显示:

Hello, World!
Run Code Online (Sandbox Code Playgroud)

Ale*_*ing 8

write功能是双重功能read:它输出(或至少尝试输出)可以read返回的原点以产生原始值.根据我的经验,即使是为了这个目的,它通常也不是非常有用,但是当你进行调试时它会很有用.

对于实际输出,您需要的功能是display.这将实际数据本身输出到输出端口,而不是它的格式化表示.


为了完整起见,Racket还有一个额外的打印功能,称为print.与display和不同write,print明确设计用于调试.它的输出可以通过各种不同的参数进行定制,因此输出格式使用它不一定是可预测的,并且它不应该用于除调试之外的任何其他内容.不过,为此目的,它非常有用.


soe*_*ard 5

使用display而不是write.