Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 业务应用程序中的状态monad示例_Scala_Functional Programming_State_Monads - Fatal编程技术网

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

Scala 业务应用程序中的状态monad示例,scala,functional-programming,state,monads,Scala,Functional Programming,State,Monads,我正在寻找一个商业应用程序中状态monad的简单示例 我已经找到了很好的例子——计算斐波那契数和随机数——但我希望看到一个来自商业领域的例子(最好是Scala) 例如,我可以很容易地找到使用Option、List、Reader和Writer单子的示例: 选项:查找不存在的实体(订单、产品、客户等) 要么:任何失败 列表:客户订单、订单项目等 读卡器:从数据库中读取任何实体 写入器:写入日志 现在,我正在为状态单子寻找类似的东西,即,据我所知,任何具有可变状态的有状态计算。我要达到状态的典型应

我正在寻找一个商业应用程序中状态monad的简单示例

我已经找到了很好的例子——计算斐波那契数和随机数——但我希望看到一个来自商业领域的例子(最好是Scala)

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

  • 选项:查找不存在的实体(订单、产品、客户等)
  • 要么:任何失败
  • 列表:客户订单、订单项目等
  • 读卡器:从数据库中读取任何实体
  • 写入器:写入日志

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

我要达到
状态的典型应用是,我需要提供值,如随机数生成器或唯一标识符


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

您想要什么样的业务应用程序?你知道,随机数生成在商业中使用得相当多。我指的是订单处理软件,例如供应链软件、账单、CRM等。你能想到一个跟踪某种状态的应用程序吗?然后您就有了一个应用程序,
State
可能是合适的。我想到的大多数应用程序都是客户机/服务器,它们是无状态的。状态存储在数据库或客户端中。这就是我请求帮助的原因。谢谢。我正在考虑处理一份订单。假设我正在编写一个函数来计算给定订单的付款。该函数计算折扣、增值税、转换货币,最后返回付款总额。这里的顺序看起来像一个
状态
。这有意义吗?我不确定这对我有意义。订单是怎么变化的?第二个想法是,这对我来说也没有意义。我在考虑另一个例子。