Racket 球拍:我怎样才能把一个流变成一个列表?

Racket 球拍:我怎样才能把一个流变成一个列表?,racket,Racket,在Racket中,如何将流转换为列表 我假设会有一个公共接口,但似乎像map这样的面向列表的函数在流上不起作用。那么如何将它们转换为列表呢?有一个直接命名的函数。它是从库中提供的,您可以看到流的许多其他类似列表的函数,包括流映射 (但如果您正在使用它,请注意,此库可能会因为使用原样流而导致严重的性能损失。)有一个直接命名的函数。它是从库中提供的,您可以看到流的许多其他类似列表的函数,包括流映射 (但如果您正在使用它,请注意,此库可能会因为使用流原样而受到严重的性能损失。)有一个过程可以解决此问题

在Racket中,如何将流转换为列表


我假设会有一个公共接口,但似乎像map这样的面向列表的函数在流上不起作用。那么如何将它们转换为列表呢?

有一个直接命名的函数。它是从库中提供的,您可以看到流的许多其他类似列表的函数,包括
流映射


(但如果您正在使用它,请注意,此库可能会因为使用原样流而导致严重的性能损失。)

有一个直接命名的函数。它是从库中提供的,您可以看到流的许多其他类似列表的函数,包括
流映射


(但如果您正在使用它,请注意,此库可能会因为使用流原样而受到严重的性能损失。)

有一个过程可以解决此问题:。例如:

(define s (stream 1 2 3 4 5))
(stream->list s)
=> '(1 2 3 4 5)

请确保选中,有多个过程可用于操作镜像列表可用流的流。

有一个过程:。例如:

(define s (stream 1 2 3 4 5))
(stream->list s)
=> '(1 2 3 4 5)
确保选中,有几个操作流的过程可以镜像列表中可用的流。

此外,还有一个更通用的过程可以将任何流转换为列表

> (sequence->list (stream 1 2 3))
'(1 2 3)
> (sequence->list "abc")
'(#\a #\b #\c)
> (sequence->list (set 1 2 3))
'(1 2 3)
除此之外,还有一种更通用的方法,可以将任意项转换为列表

> (sequence->list (stream 1 2 3))
'(1 2 3)
> (sequence->list "abc")
'(#\a #\b #\c)
> (sequence->list (set 1 2 3))
'(1 2 3)