Data.List.Split的`chunksOf`,其值为0

时间:2015-03-06 17:29:00

标签: list haskell

Data.List.Split' s chunksOf的类型为:

Prelude Data.List.Split> :t chunksOf
chunksOf :: Int -> [e] -> [[e]]

简单示例:

Prelude Data.List.Split> chunksOf 2 [1,2,3,4]
[[1,2],[3,4]]

当我传入0的值时,它返回一个空列表的无限列表:

Prelude Data.List.Split> take 5 $ chunksOf 0 [1]
[[],[],[],[],[]]

这种行为的原因是什么?不返回Maybe [[a]]的优势/原因是什么?

1 个答案:

答案 0 :(得分:4)

有一种合理的方法可以从列表中生成大小为0的块,所以它就是这样做的。它不是那么有用,但产生合理和无用的东西比处理Maybe或抛出异常更好。