gpt4 book ai didi

haskell - Monad 还可以测量副作用

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

如何计算在 Monad 上应用绑定(bind)的次数 - 给定状态 monad 的示例,我想计算状态更改的次数。我怎样才能最好地概括这一点?这个逻辑应该是绑定(bind)运算符的一部分(由于它增加计数而具有副作用)还是有更好的方法吗?

最佳答案

你不能。单子(monad)定律之一是

return x >>= f = f x

左侧有一个绑定(bind),右侧没有,因此任何守法的 monad 都无法观察到有多少个绑定(bind)。

充其量你可能会采取行动

increment :: M ()

在你的单子(monad)中,它会碰撞计数器。 (正如您所说,这可以使用 StateT 或类似的方法或其他几种本质上同构的方式来实现。)

关于haskell - Monad 还可以测量副作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54281543/

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