gpt4 book ai didi

haskell - 所有的单子(monad)命名约定是什么?

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

似乎 Haskell 已经围绕 monad 建立了几个命名约定。

例子:

  • 附加 T到最后获取 monad 转换器的名称(例如 Reader -> ReaderT )
  • 使用 runXXX执行单子(monad)计算(例如 runST , runReader )
  • liftXXX对于 XXX 的各种值

  • 还有其他命名约定吗?

    最佳答案

  • runX m在哪里 m :: X a将运行 X monad 并返回“副作用”以及 monad 结果,a .
  • evalX m将运行计算并返回结果,a .
  • execX m将运行计算并返回“副作用”但不返回结果。
  • 升降机有各种口味,我想在 SO 答案中解释它们可能有点太棘手了。你应该知道liftliftIO并注意/最终找出其他变体,例如 liftWithliftBaseWith .例如,参见 EZYang 关于该主题的帖子。
  • 附加一个 T monad 名称后暗示了变压器。附加 M在函数名称之后暗示它是一元的。附加 _意味着结果被忽略。
  • 所有其他后缀字母的意思是“使用 hoogle”。
  • 关于haskell - 所有的单子(monad)命名约定是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9458700/

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