如何将端口转换为字符串并在Racket中列出?

时间:2015-02-08 00:35:19

标签: scheme racket

如何将端口的所有字符转换为字符串或列表,以便我可以将其作为字符列表或字符串进行操作?

我想知道是否有类似于

的东西
(define (port->list port) (list port))

是可能的。

2 个答案:

答案 0 :(得分:2)

Racket提供了内置的port->string功能。如果需要,您可以随后在结果字符串上调用string->list以获取字符列表。

当然,如果您想一步完成,那么定义这样一个函数将是微不足道的:

(define (port->list port)
  (string->list (port->string port)))

答案 1 :(得分:0)

球拍提供了理解,这应该是真正应该使用的东西。

(define (port->list port)
  (for/list ((c (in-port read-char port))) c))

这样说,Racket已经提供了自己的port->list,你的版本实际上会与它发生冲突。