如何在EVAL弦的球拍(How to eval strings in racket)

2019-07-29 05:46发布

我想了解如何让eval函数读取一个字符串,并评估这里面的字符串的内容。

目前,我知道,

> (eval '(+ 1 2))
   3

但我不使用球拍的那个知识渊博。 所以此刻我想要得到它,这样我可以这样做:

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

任何意见或链接到有用的资源将不胜感激。

Answer 1:

你想用read加上open-input-string 。 像这样:

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

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

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


文章来源: How to eval strings in racket