我想在eval中使用特定的#lang来为它提供语义。但是,eval本身似乎没有指定语言的机制,并且传入#lang似乎不起作用。
答案 0 :(得分:9)
您可以使用make-module-evaluator
中的racket/sandbox
。
> (require racket/sandbox)
> (define evaluator (make-module-evaluator "#lang racket/base"))
> (evaluator '(+ 1 2))
3
> (evaluator "(+ 1 2)")
3