假设我有一个像
#lang racket/base
(define (hello) (print "Hello"))
... more definitions ...
我想加载文件中的定义以在 (X)REPL 中交互地使用它们。我怎么做?
如果我启动 (X)REPL 和(load "/tmp/hello.rkt")
,则该hello
功能对我不可用:
-> (hello)
; hello: undefined;
如果 I (require (file "/tmp/hello.rkt"))
,结果是一样的。现在我可以 (enter! (file "/tmp/hello.rkt"))
然后(hello)
工作,但这似乎相当......不直观且对初学者不友好。
这确实是应该这样做的方式吗?我应该简单地阅读模块和命名空间以轻松浏览和试验我的代码,还是有一种更简单的方式我忽略了?
注意我发现你如何通过命令行将文件加载到球拍中?,但这仅说明了如何运行该文件。不是如何在 REPL 中加载它,因此您可以测试/调试一些特定的定义,然后编辑、重新加载等。