gpt4 book ai didi

haskell - IdentityT 变压器的用途是什么?

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

在查看 Transformers 包时,我发现了这个名为 IdentityT 的 monad 变压器。 .

虽然我了解 Identity monad 的使用方式(例如 State 只是 StateT Identity 的别名)以及 monad 转换器的一般工作原理,但我不知道如何使用与 IdentityT 相关。

由于它不在 MTL 中,我猜它是为了完整性而添加的,没有实际用途。这是正确的吗?

最佳答案

链接的文档确实说了

This is useful for functions parameterized by a monad transformer.

虽然我不知道有任何情况确实如此。理论上,如果您有一个类似 foo::(MonadTrans t, Monad m) => t m a -> b 的函数来获取一些有用的 b,那么您可能希望能够通过使用 t = IdentityT 将其“简化”为本质上的 m a -> b

但是 IdentityT 之于 MonadTrans 就像 Identity 之于 Monad 一样。它是“直通”转换器,因为 Identity 是“直通”单子(monad)。只需查看来源即可;这很简单。 IdentityT SomeMonad a 的行为应该与 SomeMonad a 相同,唯一的区别是存在额外的新类型(当然,它在编译时被删除)

关于haskell - IdentityT 变压器的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9122825/

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