我正在使用Windows 7中的DrRacket完成EOPL Scheme练习。当我从#lang racket切换到#lang eopl时,定义窗格的输出不再显示在交互窗格中。要清楚,作为一个简单的例子,运行
#lang racket 4按照您的预期生成
4 >。但跑步
#lang eopl 4只生成
>我有什么办法可以改变这种行为,还是有另一个窗格我应该查看输出?当然,我可以在交互窗格中评估表达式并查看输出,但是当我有多个要多次评估的表达式时,这很乏味。
答案 0 :(得分:2)
可能的解决方法:在定义窗格中打印值,以便它显示在交互窗格中。并使用newline
分隔行:
(write 4)
(newline)
(write 2)
> 4
> 2
当然,如果你想显示很多值,那将会很乏味,但这是一个改进。
答案 1 :(得分:1)
看起来#lang eopl
使用不会打印结果的#%plain-module-begin
而不是打印结果的#%module-begin
。
要快速切换,请使用以下内容创建以下文件:
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
在我的DrRacket中产生:
Welcome to DrRacket, version 5.3.4.6 [3m].
Language: s-exp "eopl-printing.rkt" [custom].
1
2
3
>
CAVEAT:如果eopl
因某种原因隐藏了结果,那么您可能会得到一些虚假的输出,但我不确定。