我试图了解如何让 eval 函数读取字符串并评估字符串内的内容。
目前我知道
> (eval '(+ 1 2))
3
但我对 Racket 的使用不是很了解。所以目前我正在尝试获取它以便我可以做到这一点:
> (eval "(+ 1 2)")
3
任何有用资源的建议或链接将不胜感激。
最佳答案
您要使用 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
关于string - 如何评估 Racket 中的弦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10399315/