Raz*_*zed 9 string eval racket
我试图了解如何让eval函数读取字符串并评估字符串中的内容.
目前我知道
> (eval '(+ 1 2))
3
Run Code Online (Sandbox Code Playgroud)
但是我对球拍的使用知之甚少.所以目前我正试图让它能够做到这一点:
> (eval "(+ 1 2)")
3
Run Code Online (Sandbox Code Playgroud)
任何建议或有用资源的链接将不胜感激.
Sam*_*adt 17
你想和... read
一起使用open-input-string
.像这样:
-> (eval (read (open-input-string "(+ 1 2)")))
3
Run Code Online (Sandbox Code Playgroud)
您还可以使用with-input-from-string
:
-> (with-input-from-string "(+ 1 2)"
(lambda () (eval (read))))
3
Run Code Online (Sandbox Code Playgroud)