gpt4 book ai didi

Haskell takeWhile + 1

转载 作者:行者123 更新时间:2023-12-02 02:18:34 25 4
gpt4 key购买 nike

如何编写一个 takeWhile 来保留第一个不符合条件的元素?

示例(显然我的示例比这更棘手):

而不是 takeWhile (\× - > x! = 3) [1..10]返回 [1,2]我需要[1,2,3] .

我想到了(takeWhile myFunc myList) ++ [find myFunc myList]但这意味着我需要检查我的 list 2 次...

任何想法?

最佳答案

您可以使用 spanbreak .

λ> span (/=3) [1..10]
([1,2],[3,4,5,6,7,8,9,10])

所以你可以做这样的事情:
takeWhileInc :: (a -> Bool) -> [a] -> [a]
takeWhileInc p xs = case zs of [] -> error "not found"
(z:_) -> ys ++ [z]
where
(ys, zs) = span p xs

(或者当 zs 为空时您想要发生的任何事情,因为没有 3被找到。)

关于Haskell takeWhile + 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41741681/

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