12

eval 関数を取得して文字列を読み取り、文字列内のコンテンツを評価する方法を理解しようとしています。

現在、私はそれを知っています

> (eval '(+ 1 2))
   3

しかし、私はラケットの使用に精通していません。だから現時点では、私はこれを行うことができるようにそれを取得しようとしています:

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

有用なリソースへのアドバイスやリンクをいただければ幸いです。

4

1 に答える 1

19

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
于 2012-05-01T14:50:01.857 に答える