我将以下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?
答案 0 :(得分:3)
正如@soegaard所说,htdp语言在DrRacket中确实最好用,在这种情况下我强烈推荐。但是,如果确实确实想要在DrRacket之外使用REPL(比如说你正在评分作业并希望为它制作一个shell脚本),那么你实际上可以使用,enter
获得一个BSL repl。假设您有一个名为homework1.rkt
的BSL文件,其中包含:
#lang htdp/bsl
"I'm a rebel"
然后你可以做的是在files目录中打开Racket并进入模块。在这种情况下,你会得到类似的东西:
$ racket
> ,enter "homework1.bsl"
"I'm a rebel"
homework1.bsl>
从这里开始你的BSL代表与DrRacket非常相似。
答案 1 :(得分:2)
使用
racket -I htpd/bsl/lang example.rkt
启动您的程序(使用Racket版本6.3.0.1进行测试)。
另外,请考虑更新到当前版本的Racket(版本6.10)。