我一直在阅读some materials on free monads,我并不认为我更接近于实现,但是我认为我更接近于理解它们!

鉴于上述大量资源,我了解到的是,免费的monad从“计算”工作中“释放”“ monad”(这是一种数据类型)。换句话说,免费的monad为客户端自己实现的joinmap之类的接口提供了接口?

最佳答案

换句话说,免费的monad提供了客户端将自己实现的诸如join和map之类的接口?


在某种程度上,是的。但是我认为更好的说法是:“一个免费的monad提供一种语言,而其实例实现该语言的不同解释器。”

monad是自由的,因为它不受monads法律的限制。它的实例不是免费的,因为特定的解释会增加其他约束。

08-19 20:02