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

How to convert port to string and list in Racket?

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

我想知道是否有类似的东西

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

可以。

Racket 在生成的字符串上提供了一个内置的 port->string function. If you want, you can subsequently call string->list 来获取字符列表。

当然,如果你想一步完成,定义这样一个函数就很简单了:

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

Racket 提供了推导式,这才是真正应该使用的东西。

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

话虽这么说,Racket 已经提供了它自己的 port->list 而你的版本实际上会与之冲突。