我一直在阅读some materials on free monads,但我并不认为我更接近于实现,但是我更容易理解他们是什么!
基于上述大量资源,我理解的是,免费单子从“计算”工作中“释放”“单子”(这是一种数据类型)。换句话说,免费的monad为客户自己实现的join
和map
之类的东西提供接口。
答案 0 :(得分:2)
换句话说,免费的monad提供了客户端将自己实现的诸如join和map之类的接口?
以某种方式。但是我认为更好的说法是:“一个免费的monad提供一种语言,而其实例实现该语言的不同解释器。”
该单子是自由的,因为它不受单子法则以外的任何其他约束。它的实例并非免费,因为特定的解释会增加其他约束。