首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数式编程短路

函数式编程短路
EN

Stack Overflow用户
提问于 2019-11-27 22:13:04
回答 1查看 239关注 0票数 0

我正在研究函数式编程,即使用KotlinArrow-kt

我的用例如下:

我想执行一个Action并返回相关的Reaction

ActionReaction都有关联的Side Effects

事件的顺序是

1)。在接受Action时,立即触发关联的Actions Side Effects

2)。执行Action并获取Reaction

3)。触发Reactions Side Effects

4)。返回Reaction结果。

请求执行操作时需要考虑的其他因素

a)。如果从未执行过该操作,请完成整个序列,例如步骤1- 4。

b)。执行Action时,将序列短路,使步骤2-4不能完成

c)。当Action完成后,短路步骤1-3并返回Reaction结果

上面提到的副作用包括LoggingAnalyticsUser Interface效应。

我有一种感觉,我要求立即触发ActionReaction副作用,这意味着函数式编程解决方案不适合我的用例

我找到的Arrow-kt演示文稿和博客描述了如何使用Either根据引发的错误条件来短路序列,或者如何将OptionSomeNone一起使用来实现相同类型的行为。

我遇到困难的地方

i)。从哪里开始?

ii)。有四个步骤要完成,如何控制/管理“短路”,以便完成步骤1 - 4、步骤1或步骤4

是否有可能使用函数式编程来实现所需的行为?

EN

回答 1

Stack Overflow用户

发布于 2019-11-30 18:47:03

您的案例的最佳起点是https://arrow-kt.io/docs/patterns/error_handling/

如果你想做一些副作用,比如日志记录,你可以做的最简单的事情就是把它们都变成suspend函数,把它们标记为不纯。这样一来,你的整个程序将会是一个挂起函数调用链。

您必须在main中执行第一个挂起函数,或者执行诸如Activity#onCreateController之类的业务逻辑的请求。使用IO { myBusinessLogic() }.unsafeRunAsync { }执行第一个挂起功能

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59072111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档