可能很简单,但我浏览了文档并用谷歌搜索了示例,但我仍然不确定答案。
如果我有一个这样的列表:
[1,2,3,4,5,6,7,8,9,0]
我想提取一个切片,比如从索引 4 到索引 8,即我想要:
[5,6,7,8,9]
在 Haskell 中执行此操作的惯用方法是什么?
首先,这不是一个数组,而是一个列表。我并不是(仅仅)迂腐,因为数组在 Haskell 中比列表更有问题。
也就是说,一种常见的方法是使用take and drop一起:
take
drop
Prelude> drop 4 . take 9 $ [1,2,3,4,5,6,7,8,9,0] [5,6,7,8,9] Prelude> take (9-4) . drop 4 $ [1,2,3,4,5,6,7,8,9,0] [5,6,7,8,9]
后者效率更高一些。