2016-09-09 3 views
1

Я пытаюсь загрузить файл racket, чтобы я мог его протестировать в интерактивном режиме, аналогично тому, что позволяет DrRacket.Файл модуля загрузки без загрузки

test.rkt:

#lang racket 

(define blah 1) 

Я пытаюсь запустить его с помощью этой команды:

racket -it test.rkt

, который работает, и я получаю обычный вывод:

Welcome to Racket v6.6. 
> 

Но когда я пытаюсь значение blah не работает:

> blah 
blah: undefined; 
cannot reference undefined identifier 
    context...: 
    /usr/share/racket/collects/racket/private/misc.rkt:88:7 

Как запустить эту программу в интерактивном режиме?

ответ

1

Самый простой способ, вероятно, использовать xrepl: (require xrepl) (или добавить require к вашему .racketrc), а затем использовать ,enter команду «переместить внутрь» модуля:

$ racket 
Welcome to Racket v6.6.0.4. 
> ,enter test.rkt 
> blah 
1 
+0

Спасибо! Есть ли способ перезагрузить файл после его редактирования без повторного ввода всего этого? – carloabelli

+0

В случае непредвиденного случая вам это не пришло: DrRacket, IDE для ракетки, очень * очень хорош * при выполнении именно этого. –

+0

@JohnClements ОП упоминает DrRacket в вопросе, поэтому, я думаю, они, по крайней мере, знают об этом, но да, я редко использую CLI REPL из-за этого. :) –

2

Вы очень близко. Вам просто нужно provide бла, чтобы его можно было использовать из repl.

#lang racket 

(provide blah) 
(define blah 1) 

И тогда, когда вы запустите его с racket -it test.rkt, вы получите:

Welcome to Racket v6.6.0.4. 
> blah 
1 
Смежные вопросы