将字符串转换为Racket中带括号的S表达式

时间:2018-07-11 16:20:34

标签: functional-programming scheme racket

如何将类似"(+ ( - 5 2) 8)"的字符串转换为可以在Racket提示符下求值的s表达式(+ (- 5 2) 8)?我尝试了string->symbol,但返回了'|(+ ( - 5 2) 8)|,这不是我想要的。

1 个答案:

答案 0 :(得分:4)

球拍(或其他任何Lisp)中的If Not IsError(v) Then 'v is safe to convert to whatever you need it to be Else 'cell contains an error value End If 功能就是这样做的。 read将从输入端口而不是字符串中读取。您可以为此使用read函数。

open-input-string