我最近花时间去掌握FP概念,特别是免费monad。我认为我非常了解免费monad背后的想法,但是出现了一个问题。
我一直在使用Doobie,它建立在免费monad之上。对我来说,将不同的代数(与副产品)结合起来是有意义的,包括doobie。在测试代数时,人们通常会创建一个测试解释器。但对于像Doobie这样的现有库(代数有点大),我是否需要自己创建一个测试解释器?对我来说,在这一点上使用免费monad提供了很多样板代码。此外,如果方法有误,我希望得到一些反馈。
可能是一个更常见的问题,但是您倾向于使用它们的用例是什么?您是否使用它们来构建几乎每个FP应用程序,或者只有特定的用例,其中免费monad闪耀。
提前致谢!
答案 0 :(得分:0)
Doobie很棒,表面很复杂,但使用起来很简单。你不需要触摸免费的monad来使用Doobie。
除非你为Doobie项目做出贡献,否则我真的没有理由去触摸免费monad。
对于单元测试,您可以使用H2,还有一个特殊的Doobie Spec包。
https://tpolecat.github.io/doobie-0.2.1/11-Unit-Testing.html
关于免费monad的其他用途: 免费monad是解决难题的非常复杂的工具。 对功能编程不熟悉的人想要使用所有闪亮的新玩具。这导致了很多过度工程。 :d
我所知道的免费monad唯一好用的是Doobie。