我刚刚在我的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球拍模式最常用的模式是:
- 访问缓冲区中的.rkt文件 与<<li>"运行"kbd>碳碳碳碳或 F5 )。
- 在REPL中按你的意愿交互式地探索。
- Goto 2。
如果您的文件包含#lang racket
,那么REPL将选择使用哪种语言。如果没有这样的行,我猜是使用了racket/base
——object%
没有在racket/base
中定义。
试着输入这个程序:
#lang racket
(+ 1 2)
然后启动REPL并再次尝试您的代码片段