在 Haskell 中获取子列表

2024-03-20

可能很简单,但我浏览了文档并用谷歌搜索了示例,但我仍然不确定答案。

如果我有一个这样的列表:

[1,2,3,4,5,6,7,8,9,0]

我想提取一个切片,比如从索引 4 到索引 8,即我想要:

[5,6,7,8,9]

在 Haskell 中执行此操作的惯用方法是什么?


首先,这不是一个数组,而是一个列表。我并不是(仅仅)迂腐,因为数组在 Haskell 中比列表更有问题。

也就是说,一种常见的方法是使用take and 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]

后者效率更高一些。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Haskell 中获取子列表 的相关文章

随机推荐