2015-10-24 16 views
8

Tôi muốn sử dụng một hàm cụ thể trong eval để cung cấp cho nó ngữ nghĩa của nó. Tuy nhiên, bản thân eval dường như không có cơ chế để chỉ định ngôn ngữ, và việc truyền trong #lang dường như không hoạt động.Chỉ định #lang cho eval trong Racket

Trả lời

9

Bạn có thể sử dụng make-module-evaluator từ racket/sandbox cho điều đó.

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