2

我只是想知道是否有办法使:“ ((a b))”变成'((a b)).

我用 (symbol->string "((a b))")了这给了我'|((a b))|

这并不是我所需要的。我需要一份清单。

4

2 回答 2

6

只需在 Racket 中执行此操作:

(call-with-input-string "((a b))" read)
=> '((a b))

使用的好处call-with-input-string是字符串端口会自动关闭,前面已经提到

于 2013-10-16T01:35:00.027 回答
3

您可以使用readandopen-input-string一起将字符串解析为列表。

> (define (string->list str) (read (open-input-string str)))
> (string->list "((a b))")
'((a b))

这首先将字符串转换为input-port(数据流),然后从 ainput-port转换为list. 请参阅open-input-stringread的文档。

于 2013-10-16T01:36:39.330 回答