包含实际列表中的列表的字符串

时间:2013-10-16 01:29:10

标签: scheme racket

我只是想知道是否有办法: “((a b))”进入'((a b))

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

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

2 个答案:

答案 0 :(得分:6)

只需在Racket中执行此操作:

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

使用call-with-input-string的好处是字符串端口会自动关闭,如前所述before

答案 1 :(得分:3)

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

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

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