业务应用程序中状态monad的示例

时间:2014-01-31 18:08:12

标签: scala functional-programming state monads

我正在寻找业务应用程序中State Monad的简单示例。

我找到了很好的例子 - memoisation来计算斐波纳契数和随机数generation - 但我想看一个来自业务领域的例子(最好是在Scala中)。

例如,我可以轻松找到使用Option,Either,List,Reader和Writer monad的示例:

  • 选项:查找不存在的实体(订单,产品,客户等)
  • :任何失败
  • 列表:客户订单,订单商品等
  • reader :从数据库中读取任何实体
  • writer :写入日志

现在我正在为State monad寻找类似的东西,即我所理解的具有可变状态的任何有状态计算。

1 个答案:

答案 0 :(得分:3)

我到达State的典型应用是我需要提供值的地方,例如随机数生成器或一系列唯一标识符。

另一个典型用例是测试与数据库交互的应用程序。使用State,您可以模拟内存数据库并检查程序是否以预期的方式操作数据库。