How to eval strings in racket

eval, racket, string

Solution

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

Problem

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.

Original source

Related problems