如何在球拍中评估字符串

时间:2012-05-01 14:42:16

标签: string eval racket

我试图了解如何让eval函数读取字符串并评估字符串中的内容。

目前我知道

> (eval '(+ 1 2))
   3

但是我对使用球拍不是那么了解。所以目前我正试图让它能够做到这一点:

> (eval "(+ 1 2)")
   3

任何有用资源的建议或链接都​​将受到赞赏。

1 个答案:

答案 0 :(得分:17)

您希望readopen-input-string一起使用。像这样:

-> (eval (read (open-input-string "(+ 1 2)")))
3

您还可以使用with-input-from-string

-> (with-input-from-string "(+ 1 2)"
     (lambda () (eval (read))))
3