提供打印的基本原理 是显示和写两者 有相对标准的输出 惯例,以及这种标准化 限制环境的方式 可以改变这些行为 程序。没有输出约定 应该假设打印,这样 环境可以自由修改 打印生成的实际输出 无论如何。
有人可以解释一下这对菜鸟意味着什么?打印和显示有什么不同?
答案 0 :(得分:2)
问题是程序可以预期来自write
和display
的某些输出格式。在PLT中,可以改变它们的行为方式,但有一点涉及这样做。这是故意的,因为做这样的改变会产生戏剧性和意想不到的结果。
OTOH,改变print
的行为方式很容易 - 只需查看current-print
文档即可。我的想法是print
用于调试,用于在交互式REPL中呈现代码 - 而不是作为一种工具,您将依赖于需要格式化的输出具体方式。 (顺便说一句,另见format
,printf
等的“~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: