在Racket中为eval指定#lang

ckf*_*ite 8 racket

我想在eval中使用特定的#lang来为它提供语义.但是,eval本身似乎没有指定语言的机制,并且传入#lang似乎不起作用.

Ale*_*uth 9

你可以使用make-module-evaluatorfrom racket/sandbox.

> (require racket/sandbox)
> (define evaluator (make-module-evaluator "#lang racket/base"))
> (evaluator '(+ 1 2))
3
> (evaluator "(+ 1 2)")
3
Run Code Online (Sandbox Code Playgroud)