打印和显示之间的区别

时间:2009-06-05 16:58:48

标签: scheme

PLT Schemedocumentation说:

  

提供打印的基本原理   是显示两者   有相对标准的输出   惯例,以及这种标准化   限制环境的方式   可以改变这些行为   程序。没有输出约定   应该假设打印,这样   环境可以自由修改   打印生成的实际输出   无论如何。

有人可以解释一下这对菜鸟意味着什么?打印显示有什么不同?

3 个答案:

答案 0 :(得分:2)

问题是程序可以预期来自writedisplay的某些输出格式。在PLT中,可以改变它们的行为方式,但有一点涉及这样做。这是故意的,因为做这样的改变会产生戏剧性和意想不到的结果。

OTOH,改变print的行为方式很容易 - 只需查看current-print文档即可。我的想法是print用于调试,用于在交互式REPL中呈现代码 - 而不是作为一种工具,您将依赖于需要格式化的输出具体方式。 (顺便说一句,另见formatprintf等的“~v”指令。)

答案 1 :(得分:1)

免费以覆盖打印功能。如果要覆盖标准化函数,例如 write ,则必须服从输出标准,否则使用它的代码可能会中断。

关于显示撰写

计划编程语言,第3版,第178

(display obj)
(display obj output-port)
returns unspecified
  

显示类似于   但打印字符串和字符   在 obj 中直接找到。字符串   没有引号或打印   斜线,字符打印   没有#\ notation。例如,   两者(显示“(a b c)”)和   (显示'(“a b”c))会打印(a b c)。因此,不应使用显示来打印对象   被认为是被阅读的   的即可。 显示主要用于打印消息    obj 通常是一个字符串。

答案 2 :(得分:0)

如果您不想更换打印件,可以尝试使用SRFI-28:

http://srfi.schemers.org/srfi-28/srfi-28.html