Nic*_*aki 3 for-loop functional-programming sequence racket
有两种可能性可以生成要在Racket中的for循环中迭代的数字序列:
(for ([i (range 1 5)])
(display i))
Run Code Online (Sandbox Code Playgroud)
和
(for ([i (in-range 1 5)])
(display i))
Run Code Online (Sandbox Code Playgroud)
range两者都有效并且in-range似乎是等效的,但是https://docs.racket-lang.org/reference/sequences.html说:
“当范围内的应用程序直接出现在 for 子句中时,它可以为数字迭代提供更好的性能。”
与 相比,这也成立吗range?
是的,与在语法上直接出现在子句中range的性能相同。事实上,在这种情况下只是简单地转换为。in-rangeforrangein-range
请注意,虽然range和in-range出现在for从句中时确实在功能上等效,但它们通常在功能上并不等效。
> (range 5)
'(0 1 2 3 4)
> (in-range 5)
#<stream>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
461 次 |
| 最近记录: |