我一直在阅读some materials on free monads,我并不认为我更接近于实现,但是我认为我更接近于理解它们!
鉴于上述大量资源,我了解到的是,免费的monad从“计算”工作中“释放”“ monad”(这是一种数据类型)。换句话说,免费的monad为客户端自己实现的join
和map
之类的接口提供了接口?
最佳答案
换句话说,免费的monad提供了客户端将自己实现的诸如join和map之类的接口?
在某种程度上,是的。但是我认为更好的说法是:“一个免费的monad提供一种语言,而其实例实现该语言的不同解释器。”
monad是自由的,因为它不受monads法律的限制。它的实例不是免费的,因为特定的解释会增加其他约束。