gpt4 book ai didi

haskell - 如何从列表中选择每个第 n 个元素

转载 作者:行者123 更新时间:2023-12-02 15:54:58 24 4
gpt4 key购买 nike

Possible Duplicate:
How to get every Nth element of an infinite list in Haskell?

简单的任务 - 我们有一个列表,并且只想保留该列表中的每个第 n 个元素。在 haskell 中最惯用的方法是什么?

从我的脑海中浮现出来的内容是这样的:

dr n [] = []
dr n (x : xs) = x : (dr n $ drop n xs)

但我有一种强烈的感觉,我把问题过于复杂化了。

最佳答案

我的变体是:

each :: Int -> [a] -> [a]
each n = map head . takeWhile (not . null) . iterate (drop n)

速度快,并且能很好地应对懒惰。

关于haskell - 如何从列表中选择每个第 n 个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7599777/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com