我最近一直在花时间去理解FP的概念,尤其是免费的monad。我想我很好地理解了免费monads背后的想法,但出现了一个问题。
我已经使用Doobie有一段时间了,它是建立在免费monads之上的。对我来说,将不同的代数组合在一起(使用余积)是有意义的,包括doobie。在测试代数时,人们通常会创建一个测试解释器。但是对于像Doobie这样的现有库(它的代数有点大),我需要自己创建一个测试解释器吗?对我来说,在这一点上使用免费的monad会给出很多样板代码。此外,如果方法是错误的,我希望得到一些反馈。
也许是一个更常见的问题,但您倾向于使用它们的用例是什么?您是使用它们来构建几乎每个FP应用程序,还是只在特定的用例中使用免费的monad。
提前感谢!
发布于 2017-08-01 06:12:05
Doobie很棒,它在表面下非常复杂,但它使用起来很简单。你不需要接触免费的monad就可以使用Doobie。
我真的看不到任何理由去接触免费的monad,除非你正在为Doobie项目做出贡献。
对于单元测试,您可以使用H2,还有一个特殊的Doobie Spec包。
https://tpolecat.github.io/doobie-0.2.1/11-Unit-Testing.html
关于自由monad的其他用途:自由monad是一个非常复杂的工具,用于解决困难的问题。刚接触函数式编程的人想要使用所有闪亮的新玩意儿。这导致了大量的过度工程。:D
据我所知,对免费monad的唯一好用就是Doobie。
https://stackoverflow.com/questions/45423936
复制相似问题