Scheme DrRacket EOPL方案输出

Scheme DrRacket EOPL方案输出,scheme,racket,Scheme,Racket,我正在Windows 7中使用DrRacket完成EOPL方案练习。当我从#lang racket切换到#lang eopl时,定义窗格的输出不再显示在交互窗格中。要清楚,作为一个简单的例子,运行 #lang racket 4 #朗格球拍 4. 生产 4. >如你所料。但是跑步 #lang eopl 4 #朗厄波尔 4只生产 >我可以做些什么来改变这种行为,或者我应该查看另一个窗格以获得输出吗?当然,我可以在交互窗格中对表达式求值并查看输出,但当我有多个表达式要多次求值时,这会很

我正在Windows 7中使用DrRacket完成EOPL方案练习。当我从#lang racket切换到#lang eopl时,定义窗格的输出不再显示在交互窗格中。要清楚,作为一个简单的例子,运行 #lang racket 4 #朗格球拍 4. 生产 4. >如你所料。但是跑步 #lang eopl 4 #朗厄波尔 4只生产
>我可以做些什么来改变这种行为,或者我应该查看另一个窗格以获得输出吗?当然,我可以在交互窗格中对表达式求值并查看输出,但当我有多个表达式要多次求值时,这会很麻烦。

一种可能的解决方法:在定义窗格中打印值,这样它就会显示在交互窗格中。并使用
换行符
分隔行:

(write 4)
(newline)
(write 2)

> 4
> 2
当然,如果您想显示许多值,这会很乏味,但这是一个改进。

看起来像是
\lang eopl
使用的,它不打印结果,而不是打印结果

要快速切换,请使用以下内容创建以下文件:

eopl printing.rkt

#lang racket
(require (except-in eopl #%module-begin))
(provide (all-from-out eopl))
(provide #%module-begin)
然后将其用作另一个文件中的语言:

#lang s-exp "eopl-printing.rkt"
1
2
3
在我的球拍中产生:

Welcome to DrRacket, version 5.3.4.6 [3m].
Language: s-exp "eopl-printing.rkt" [custom].
1
2
3
> 

警告:如果
eopl
出于某种原因隐藏了结果,那么您可能会得到一些虚假的输出,但我不确定。

乏味,是的,但如果我在多个值之间穿插
(显示“\n”)
,它会产生清晰的输出。谢谢,我现在就用这个。不要用
display
打印值;使用
打印
。使用
(换行符)
(显示“\n”)
换行符。@ryanculpaper我同意使用
(换行符)
是一个更好的主意,但是
打印
#lang eopl
ÓscarLópez中不可用啊,你说得对。那么
write
将是下一个最佳选择。
display
替代
print
的问题在于,它会抹去有用的区别,而且它在复合数据上的行为,如字符串列表,对我来说毫无帮助。@ryanculper fair:)我用你的建议更新了我的答案。不那么麻烦的解决方案。我换成这个了。谢谢
#lang s-exp "eopl-printing.rkt"
1
2
3
Welcome to DrRacket, version 5.3.4.6 [3m].
Language: s-exp "eopl-printing.rkt" [custom].
1
2
3
>