所以我正在使用 DrRacket 并且因为我正在#lang scribble
为我的程序制作手册,所以我想将我的程序运行的实际示例放在使用@interactions
到目前为止,我已经得到了这一部分:
#lang scribble/manual
@(require (for-label racket))
@(require scribble/eval racket/sandbox)
@(define my-evaluator
(parameterize ([sandbox-output 'string]
[sandbox-error-output 'string])
(make-evaluator 'racket/base '(define (f) later) '(define later 5))))
当我这样做时
@interaction[#:eval my-evaluator]{
@(f)
}
然后我scribble --htmls ++main-xref-in manual.scrbl
正确运行它呈现为:
> (f)
5
有没有办法使用我所有的定义(在不同的文件中)来使用 scribble 进行评估?我尝试将第 7 行更改为:
(make-evaluator 'racket/base '(define (f) later) '(define later 5) #:require "mydefs.rkt")))
但是当我尝试渲染它时,它会抛出这样的东西:
make-evaluator: bad requires: "mydefs.rkt"
我不想在make-evaluator
零件中复制粘贴我的定义(它们很多!)有什么解决办法吗?谢谢敲诈者!