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]]
的优势/原因是什么?
答案 0 :(得分:4)
有一种合理的方法可以从列表中生成大小为0的块,所以它就是这样做的。它不是那么有用,但产生合理和无用的东西比处理Maybe
或抛出异常更好。