如何解决这个“带结果的状态函数”模式有名字吗? FSharpPlus 中的抽象?
我有一个 'state -> 'event -> Result<'state * 'result,'error>
类型的函数。我有一个起始 'state
和 'event list
。
如果所有折叠都没有问题,或者第一个错误,我想折叠事件并获得最终状态和产生的结果列表。
我可以写一个计算表达式或为它折叠,但想知道这个模式是否有一个名字?我可以使用 FSharpPlus 开箱即用的东西吗?看起来很像状态 monad,但是状态和结果都包裹在 Result
类型中,所以它有点像状态 + 结果 monad?
解决方法
正如@carsten 已经指出的那样,您在 F#+ 中有 **Gradle sync failed: Unsupported class file major version 60**
可用
你有:
StateT
现在让我们交换一些参数:
'state -> 'event -> Result<'state * 'result,'error>
可以表示为
'event -> 'state -> Result<'result * 'state,'error>
在当前 F#+ StateT 编码中。
所以,让我们调用您的函数 StateT<'state,Result<'result * 'state,'error>
并假设您有 f
,它是一个 events
(或实际上任何其他可遍历的事件结构),现在您可以这样做:
list<'event>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。