Предположим, у меня есть файл вроде
#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)
работает, но это кажется довольно ... неинтуитивным и недружелюбным для новичков.
Действительно ли это должно быть сделано таким образом, и я должен просто прочитать модули и пространства имен, чтобы легко просматривать и экспериментировать с моим кодом, или есть более простой способ, который я упускаю?
N.B. Я нашел Как загрузить файл в ракетку через командную строку?, но это только объясняет, как запустить файл. Не о том, как загрузить его в REPL, чтобы вы могли тестировать / отлаживать некоторые конкретные определения, затем редактировать, перезагружать и т. Д.