6

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

This error does not appear when the language selected is typed/racket, for example.

为什么会发生错误htdp/bsl,以及如何正确启动 REPLhtdp/bsl作为语言?

4

2 回答 2

5

正如@soegaard 所说,htdp 语言在 DrRacket 中效果最好,在这种情况下我强烈推荐。但是,如果您确实想要 DrRacket 之外的 REPL(例如,如果您正在为作业评分并想要为其制作一个 shell 脚本),那么您实际上可以使用,enter来获得 BSL repl。假设您有一个名为 的 BSL 文件homework1.rkt,其中显示:

#lang htdp/bsl
"I'm a rebel"

然后你可以做的是在文件目录中打开Racket并进入模块。在这种情况下,你会得到类似的东西:

$ racket
> ,enter "homework1.bsl"
"I'm a rebel"
homework1.bsl>

从这里您处于一个与 DrRacket 中的非常相似的 BSL repl 中。

于 2017-09-27T18:07:57.327 回答
3

利用

racket -I htpd/bsl/lang example.rkt

启动您的程序(使用 Racket 版本 6.3.0.1 测试)。

此外,请考虑更新到当前版本的 Racket(版本 6.10)。

于 2017-09-09T19:39:12.313 回答