gpt4 book ai didi

haskell - 为镜头寻找缺失的状态组合器

转载 作者:行者123 更新时间:2023-12-02 02:48:11 24 4
gpt4 key购买 nike

我目前的代码如下所示:

do
x <- use foo
foo <~ runFoo x

哪里 fooLensFoo场和 runFoo :: MonadState m => Foo -> m Foo
我认为应该有一种方法可以在一行中完成此操作,但我找不到它。我认为它应该有这样的评论:
(????) :: MonadState s m => Lens' s a -> (a -> m a) -> m a

问题:
  • 这样的组合器存在吗?如果是这样是什么?
  • 当我遇到另一个这样的问题时,搜索它的最佳方法是什么(即通常我只会将其输入到 Hoogle 中,但我在镜头库中这样做的运气并不好)
  • 这实际上是 Control.Monad 中的原始组合器吗? (如果这是克莱斯利箭的另一份工作,我会有点尴尬)
  • 最佳答案

    镜头没有以现成的形式提供这样的组合器。如果不是 runFoo你有一些 g :: a -> a功能,你就可以使用 (%=) , 即到 over什么use是到 view ,并简单地写 foo %= g .但是,您想要的功能涉及交错 mrunFoo 引入的效果在获取和设置之间,这排除了如此简单的解决方案。

    关于haskell - 为镜头寻找缺失的状态组合器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18584132/

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