gpt4 book ai didi

haskell - Control.MonadPlus.Free 出了什么问题?

转载 作者:行者123 更新时间:2023-12-03 14:13:56 24 4
gpt4 key购买 nike

free MonadPlus定义为

data Free f a = Pure a | Free (f (Free f a)) | Plus [Free f a]

已在免费 4.6 中删除,并带有以下注释 ( changelog):

Removed Control.MonadPlus.Free. Use FreeT f [] instead and the result will be law-abiding.



问题是什么,特别是哪些法律不成立?

最佳答案

据此issue在错误跟踪器中,旧定义不遵守关联定律。

虽然我对这些事情知之甚少,但我怀疑另一个问题是冗余:

Pure a
Plus [Pure a]
Plus [Plus [Pure a]]
...

似乎都代表着同一件事。自由结构通常应该是唯一的。有时它们不能被唯一地表示(例如,自由阿贝尔群),但在可能的情况下它们应该是。

实际上,我认为建议的替代方案遇到了同样的问题,尽管可以通过使用 NonEmpty 来修复它。而不是 [] .所以这个改变可能只是从库中删除多余的垃圾。

关于haskell - Control.MonadPlus.Free 出了什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32185389/

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