gpt4 book ai didi

haskell - 我如何在这里使用箭头?

转载 作者:行者123 更新时间:2023-12-04 05:04:52 26 4
gpt4 key购买 nike

考虑

foldr (\x (a,b) -> (a || x==2, b || x==7 )) (False,False) [1..6]
--(True,False)

忽略使用 elem 可以轻松编写的事实,我有强烈的感觉,我可以雇用 Arrow语法来简化 lambda,我就是做对了。

可以使用箭头简化这个 lambda 吗?关于如何“查看”箭头何时起作用以及如何找到正确的表达方式,您是否有任何一般性提示?

最佳答案

将计算从文件夹中拉出 -

ghci> :m +Control.Arrow
ghci> any (==2) &&& any (==7) $ [1..6]
(True,False)

但是,如果您想确保只遍历列表一次,请尝试使用 bifunctor package :
ghci> :m +Data.Bifunctor +Data.Bifunctor.Apply
ghci> foldr (bilift2 (||) (||) . ((==2) &&& (==7))) (False, False) [1..6]
(True,False)

关于haskell - 我如何在这里使用箭头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9636032/

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