我将以下htdp/bsl
程序另存为example.rkt
:
#lang htdp/bsl
(+ 1 1)
当使用
racket example.rkt
运行上述代码时,输出将如预期的那样(即2
)。但是,当我尝试使用
htdp/bsl
作为语言(racket -I htdp/bsl
)启动REPL时,出现以下错误:Welcome to Racket v6.3.
default-load-handler: cannot open module file
module path: (lib "htdp/bsl")
path: /usr/share/racket/pkgs/htdp-lib/htdp/bsl.rkt
system error: No such file or directory; errno=2
context...:
当选择的语言是
typed/racket
,例如不会出现此错误。为什么
htdp/bsl
会发生错误,如何以htdp/bsl
作为语言正确启动REPL? 最佳答案
正如@soegaard所说的,htdp语言在DrRacket中确实工作得最好,在这种情况下,我强烈建议使用。但是,如果您确实希望在DrRacket之外使用REPL(例如,如果您正在对作业进行评分并想要为其编写 shell 脚本),那么您实际上可以使用 ,enter
来获得BSL复制。假设您有一个名为homework1.rkt
的BSL文件,其中说:
#lang htdp/bsl
"I'm a rebel"
然后,您可以做的是在文件目录中打开Racket并输入模块。在这种情况下,您将获得类似以下内容的信息:
$ racket
> ,enter "homework1.bsl"
"I'm a rebel"
homework1.bsl>
从这里开始,您将进入一个与DrRacket中的版本非常相似的BSL版本。
关于racket - 如何在REPL中将语言设置为htdp/bsl,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46045086/