gpt4 book ai didi

Haskell 映射直到满足第一个条件

转载 作者:行者123 更新时间:2023-12-02 02:00:44 27 4
gpt4 key购买 nike

我只想在通过的第一项上映射条件函数。

map (>5) [1,2,3,4,5,6,7,8,9]

会导致
[False,False,False,False,False,True,True,True,True]

我正在寻找会导致
[False,False,False,False,False,True,False,False,False]

所以只有第一次出现大于 5 的结果为 True。
我尝试了 scanl,各种折叠并尝试滚动我自己的 mapUntil 之类的东西。
似乎是一个简单的问题,但我正在画一个空白。

最佳答案

休息 专门将列表分为两部分,其中第一部分全部为 False ,与 相反跨度 .

break (>5) [1,2,3,8,2,5,1,7,9]
>>> ([1,2,3],[8,2,5,1,7,9])

然后它就是 chi 所做的:

oneTrue f lst  = map (const False) a ++ rest b
where (a,b) = break f lst
rest [] = []
rest (x:xs) = True : map (const False) xs

关于Haskell 映射直到满足第一个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61359820/

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