在Racket中无限提升序列

Mir*_*lov 4 scheme stream infinite-sequence racket

itertools.count 在Racket中是否有Python的模拟?我想创建一个均匀间隔数字的无限流.in-naturals类似于我想要的,但不提供步骤.我想不要重新发明轮子,但如果没有相应的功能,怎么写一个?(我认为应该使用发电机)

Ósc*_*pez 6

你可以count使用in-range无限end值获得Python的相同功能:

(define (count start step)
  (in-range start +inf.0 step))
Run Code Online (Sandbox Code Playgroud)

例如:

(define s (count 2.5 0.5))

(stream-ref s 0)
=> 2.5
(stream-ref s 1)
=> 3.0
(stream-ref s 2)
=> 3.5
(stream-ref s 3)
=> 4.0
Run Code Online (Sandbox Code Playgroud)