gpt4 book ai didi

haskell - 使用 Haskell 镜头库,我如何将 setter/getter 视为 `first class' ?

转载 作者:行者123 更新时间:2023-12-03 15:06:07 27 4
gpt4 key购买 nike

我注意到我通常构建使用镜头获取值的函数,将一些函数应用于值并返回结果。例如,对一对元素求和
\pair -> (pair ^. _1) + (pair ^. _2)
我觉得应该有一些组合器来组合第一类 setter/getter 并返回另一个 setter/getter (可能是 (b -> c -> d) -> Getter a b -> Getter a c -> Getter a d 类型)。有什么帮助吗?

最佳答案

您可以随时使用 Applicative (->) 的实例

(+) <$> view _1 <*> view _2 :: Num a => (a,a) -> a

或者,一般来说,您可能会得到 Monoid 的帮助。 Getter 的实例s
>>> view (_1 <> _2) (Sum 1, Sum 2)
Sum {getSum = 3}

关于haskell - 使用 Haskell 镜头库,我如何将 setter/getter 视为 `first class' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26402101/

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