假设我有一个像这样的文件
#lang racket/base
(define (hello) (print "Hello"))
... more definitions ...
我希望能够加载文件中的定义,并在(X)REPL中与它们进行交互操作。我该如何做?
如果我在(X)REPL中输入(load "/tmp/hello.rkt")
,那么hello
函数对我来说是不可用的:
-> (hello)
; hello: undefined;
如果我使用(require (file "/tmp/hello.rkt"))
, 结果是一样的。现在我可以使用(enter! (file "/tmp/hello.rkt"))
, 然后(hello)
可以运行,但这似乎不太直观和适合初学者。这确实是应该进行的方式吗?是否应该简单地查阅模块和命名空间以轻松浏览和测试我的代码或者是否有我忽略的更简单的方法?
注:我发现如何通过命令行将文件加载到Racket中?,但那只解释了如何运行文件,而没有讲述如何在REPL中加载它,以便您可以测试/调试特定定义,然后编辑、重新加载等。
enter!
吧。我使用 (X)REPL 的原因是我正在使用 charterm 包来实现我的程序的 CLI 接口,而该包无法在 DrRacket 中使用(这很合理,因为 DrRacket 不提供 tty)。 - Confusion(enter! "file.rkt")
或者使用简单版本,无需括号和引号:,en file.rkt
- vlz