gpt4 book ai didi

haskell - Haskell ListT、LogicT 和 ChoiceT 之间的区别

转载 作者:行者123 更新时间:2023-12-02 17:50:36 28 4
gpt4 key购买 nike

这三个 monad 转换器有什么区别?

最佳答案

首先,ListT 不是真正的 monad 转换器。它违反了某些底层单子(monad)的结合律。它也非常慢,就像一般列表的单子(monad)接口(interface)一样。它是在内部基于实际列表构建的。

LogicT 可能是类似列表的 monad 转换器的最佳选择。它不仅实现了适当的 monad 转换器,还实现了一些对于公平列表产品非常有用的组合器。

ChoiceT 是我自己的作品。它基本上只是 LogicT 的 CPSed 版本,并且受到 LogicTmonadLib 中的 ChoiceT 的启发。它非常快,通常优于(未转换的)列表,但类型可能会令人恐惧,并且您必须绑定(bind)结果类型,这有时可能会妨碍您。

结论:如果您认真的话,请使用 LogicT

关于haskell - Haskell ListT、LogicT 和 ChoiceT 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14125207/

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