gpt4 book ai didi

haskell - 如何使用 Span 将列表拆分为 block ?

转载 作者:行者123 更新时间:2023-12-02 10:36:21 24 4
gpt4 key购买 nike

我可以使用库函数重写它吗?

chunks :: ([a] -> ([a], [a])) -> [a] -> [[a]]
chunks f [] = []
chunks f xs = case c of
[] -> cs
ys -> ys : cs
where
(c, rest) = f xs
cs = chunks f rest

如果我给它一个类似于 span 的函数,该函数总是从列表中取出至少一个元素,它将消耗该列表并返回一个列表,其中包含每个被分解的元素的子列表调用函数的时间。

最佳答案

这看起来非常像展开:

http://hackage.haskell.org/package/base-4.8.0.0/docs/Data-List.html#v:unfoldr

也许类似(未经测试):

chunks f xs = unfoldr f' xs
where f' [] = Nothing
f' xs' = Just $ f xs'

关于haskell - 如何使用 Span 将列表拆分为 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29679170/

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