emacs '球拍模式'的REPL没有加载识别过程



我刚刚在我的emacs 24.3中安装了racket-mode,当我通过racket-repl命令运行REPL时,REPL正确启动,但一些非法过程/函数无法识别。即

> (class object%)
; class: undefined;
;  cannot reference undefined identifier
> (enter! "test.rkt")
; enter!: undefined;
;  cannot reference undefined identifier

"racket-racket-program"变量的当前值为"Racket.exe"。另一方面,如果我只是从windows命令行运行Racket.exe,那么REPL就会像预期的那样工作。

任何帮助,这是非常感谢。

  • 当您执行racket-repl时,该REPL最初以相当于#lang racket/base的形式打开。在提示符下,您可以输入(require racket)以获得更大的语言,包括object%之类的类。

    关于这个有一个悬而未决的问题。

  • 不要在提示符下输入(enter! "test.rkt"),试试,run test.rkt

    • 实际上,最简单的方法是在test.rkt上打开Emacs缓冲区。然后按C-c -k也就是M-x racket-run

      (注意,这在测试中留下了一个点。rkt缓冲区。如果你喜欢指向REPL,你可以使用M-x racket-run-and-switch-to-repl,默认绑定到F5,就像在DrRacket中一样。)

TL;DR球拍模式最常用的模式是:

  1. 访问缓冲区中的.rkt文件
  2. 与<<li>"运行"kbd>碳碳碳碳或 F5 )。
  3. 在REPL中按你的意愿交互式地探索。
  4. Goto 2。

如果您的文件包含#lang racket,那么REPL将选择使用哪种语言。如果没有这样的行,我猜是使用了racket/base——object%没有在racket/base中定义。

试着输入这个程序:

#lang racket
(+ 1 2)

然后启动REPL并再次尝试您的代码片段

相关内容

最新更新