I'm trying to understand how to get the eval function to read a string and evaluate the content that's inside the string.
Currently I know that
> (eval '(+ 1 2))
3
but I'm not that knowledgeable with the use of racket. So at the moment I'm trying to get it so that I can do this:
> (eval "(+ 1 2)")
3
Any advice or links to useful resources would be appreciated.
You want to use read
together with open-input-string
. Like so:
-> (eval (read (open-input-string "(+ 1 2)")))
3
You can also use with-input-from-string
:
-> (with-input-from-string "(+ 1 2)"
(lambda () (eval (read))))
3
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With