为什么在没有步骤
的情况下Haskell没有工作范围[7..1] => []
但仅限于此
[7,6..1] => [7,6,5,4,3,2,1]
答案 0 :(得分:13)
Haskell无法知道你想要步骤-1,直到你给它一个提示。
在某些情况下,您可能希望范围[x..y]
位于y < x
,并且您希望范围为空。如果Haskell在这些情况下只是向下一步,这会产生微妙的错误。
答案 1 :(得分:8)
3.10。算术序列
[...] 算术序列满足这些身份:
- [...]
- [e1..e3] = enumFromTo e1 e3
- [...]
6.3.4枚举类
对于Int和Integer类型,枚举函数具有以下含义:
- [...]
- 序列enumFromTo e1 e3是列表[e1,e1 + 1,e1 + 2,... e3]。如果e1>,则列表为空。 E3。
- [...]
答案 2 :(得分:2)
如果没有步骤的指示,haskell会认为它是+1并且如果它不适用于给定的参数则返回一个空列表。
必须明确建议除+1之外的任何增量; <积极的整合者> 1。