in-range
在 Racket 中返回一个流。库中的流上定义了很多函数racket/stream
。但是我不能使用它们的stream-take
功能srfi/41
。我想执行
(stream-take 5 (in-range 10))
它抱怨说stream-take: non-stream argument
。
(stream->list (stream-cons 10 (in-range 10)))
上面抛出以下错误:
stream-promise: contract violation;
given value instantiates a different structure type with the same name
expected: stream?
given: #<stream>
然而:
(stream->list (stream-cons 10 stream-null)) ;; works
(stream->list (stream-cons 10 empty-stream)) ;; works
两者都工作正常。
以上是否意味着来自racket/stream
和的流srfi/41
不兼容?如何在racket/stream
不重新发明轮子的情况下从流中获取 10 个项目?
球拍 5.3.3