如何在REPL中将语言设置为htdp / bsl

时间:2017-09-04 23:28:19

标签: racket racket-student-languages

我将以下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?

2 个答案:

答案 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)。