gpt4 book ai didi

haskell - 将 Lens 组合成元组的 Lens

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

给定

data Person = Person { _name :: String }
makeClassy ''Person

它创建了一个

name :: Lens' Person String

我可以定义以下在元组内使用name的镜头。

sndPerson :: Lens' (a, Person) (a, String)
sndPerson = lens
(\(a, p) -> (a, p ^. name))
(\(_, p) (a, n) -> (a, p & name .~ n))

是否有更好/规范的方法来定义上面的 sndPerson

最佳答案

alongside将一对镜片变成一个可在一对镜片上工作的镜片。

因为在示例中您不关注第一个组件,所以您可以简单地将 id 作为第一个镜头传递。

sndPerson :: Lens' (a, Person) (a, String)
sndPerson = alongside id name

关于haskell - 将 Lens 组合成元组的 Lens,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47725555/

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