gpt4 book ai didi

haskell - 有镜头操作符结合 %~ 和 fmap

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

我有以下代码

u & currentDay %~ fmap (addDays 1)

currentDay返回 Maybe这就是为什么我需要 fmap .是否已经有一个运算符来组合 %~fmap (如 %~<$> ;-))或这样做的聪明方法?

最佳答案

没有现成的运算符,但您可以轻松定义自己的运算符:

%$~ :: Functor f => ASetter s t (f a) (f b) -> (a -> b) -> s -> t
l %$~ f = over a (fmap f)

执行此操作的标准方法是使用 mapped setter :

u & currentDay . mapped %~ addDays 1

因为你映射到 Maybe 你也可以使用 _Just棱镜:

u & currentDay . _Just %~ addDays 1

关于haskell - 有镜头操作符结合 %~ 和 fmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31002591/

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