1

“scribble”是球拍文档工具。我对以下示例有疑问。当 N=30 时,scribble 使用 ~500M 内存。在单个涂鸦文档中包含 300 多个这样的示例似乎非常困难。

cat <<EOF
#lang scribble/manual
@(require scribble/eval)

@title["hello world"]   
EOF
N=30
for((i=0;i<N;i++));do
    cat <<EOF
@(examples
       (require racket/snip)
         (require racket/class)
       (make-object image-snip% "a.jpg"))

EOF
done
) > x.scrbl
scribble x.scrbl 
4

1 回答 1

4

我认为examples每次都会创建一个新的评估器,这相当昂贵。如果可能,为整个文档创建一个评估器:

#lang scribble/manual
@(require scribble/eval)
@(define the-eval (make-base-eval))

@examples[#:eval the-eval
(require racket/snip)
(require racket/class)
(make-object image-snip% "a.jpg")
]
...
@examples[#:eval the-eval
<more stuff>
]

那应该使用更少的内存。

于 2011-09-01T06:33:00.260 回答