【问题标题】:Example of State monad in business application [closed]商业应用程序中的状态单子示例 [关闭]
【发布时间】:2014-02-24 13:26:18
【问题描述】:

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

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

例如,我可以很容易地找到使用 Option、Either、List、Reader 和 Writer monad 的示例:

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

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

【问题讨论】:

  • 您心目中的业务应用程序是什么样的?你知道,随机数生成在商业中被大量使用。
  • 我指的是订单处理软件,例如供应链软件、计费、CRM等。
  • 你能想到一个跟踪某些状态的应用程序吗?然后你有一个应用程序,State 可能是合适的。
  • 我想到的大多数应用程序都是客户端/服务器,它们是无状态的。状态要么存储在数据库中,要么存储在客户端中。这就是我寻求帮助的原因。

标签: scala functional-programming state monads


【解决方案1】:

我使用State 的典型应用是我需要供应 值,例如随机数生成器或唯一标识符的供应。

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

【讨论】:

  • 谢谢。我正在考虑处理一个订单。假设我正在编写一个函数来计算给定订单的付款。该函数计算折扣、增值税、转换货币,最后返回支付总额。这里的订单看起来像State。有意义吗?
  • 我不确定这对我是否有意义。顺序如何变化?
  • 第二个想法对我来说也没有意义。我正在考虑其他示例。
猜你喜欢
  • 1970-01-01
  • 2011-03-02
  • 1970-01-01
  • 2010-10-12
  • 1970-01-01
  • 1970-01-01
  • 2010-09-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多