我想读取一个标准的球拍文件,并将其中的s表达式解析为一个列表。例如给出以下输入:
(define y 1)
(define (foo x)
(+ x 1))
它应该返回:'("(define y 1)" "(define (foo x) (+ x 1))")
最简单的方法是什么?我当时在考虑使用port->string
和朋友,但这仍然需要匹配)
。有更简单的东西吗?
答案 0 :(得分:2)
您的预期输出有些混乱。为什么要将各个s表达式作为字符串?无论如何,您可能都希望使用port->list
或file->list
,它们都产生一个s表达式列表。在示例输入中使用它们会产生以下结果:
'((define y 1) (define (foo x) (+ x 1))
如果出于某些原因确实希望将各个s表达式作为字符串,则可以始终通过在结果上映射~s
来将它们转换回字符串,但是我不确定为什么这样的事情会有用。