Stored procedures 使用用户定义的程序创建评估者
因此,我正在与DrRacket合作,由于我正在通过Stored procedures 使用用户定义的程序创建评估者,stored-procedures,racket,expression-evaluation,scribble,Stored Procedures,Racket,Expression Evaluation,Scribble,因此,我正在与DrRacket合作,由于我正在通过#lang scribble为我的程序制作一本手册,我想用@interactions来展示我的程序运行的实际示例,到目前为止,我得到了以下部分: #lang scribble/manual @(require (for-label racket)) @(require scribble/eval racket/sandbox) @(define my-evaluator (parameterize ([sandbox-output 'str
#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++主外部参照。scrbl
它正确地呈现为:
> (f)
5
有没有办法使用我所有的定义(在不同的文件中)来评估scribble?我尝试将第7行更改为:
(make-evaluator 'racket/base '(define (f) later) '(define later 5) #:require "mydefs.rkt")))
但当我试图渲染它时,它抛出如下内容:
make-evaluator: bad requires: "mydefs.rkt"
我不想在makeevaluator
部分复制粘贴我的定义(它们太多了!)有什么修正吗?谢谢你们这些骗子 来自IRC的racket帮了我这个忙。
我所需要做的就是:
@(define my-evaluator
(parameterize ([sandbox-output 'string]
[sandbox-error-output 'string])
(make-base-eval #:lang 'racket '(define (f) later)
'(define later 5)
'(require "../man/manager.rkt"))))
请注意,我没有使用关键字,而是引用了require语句
使用
@interaction[#:eval my-evaluator]{
@(define man (new manager%))@(send man crear-nodo '9)
}
完美呈现
谢谢