问题标签 [arrow-kt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kotlin - 如何使用 Kleisli 访问调用链的每个函数中的上下文?
我有一些方法的调用链,我通过 Kleisli 传递上下文。基本上我想将上下文传递给数据库访问层,但我想在两者之间的任何地方访问这个上下文。
以下示例完美运行。我的问题是,我也想访问上下文OrderService.findAll(...)
。我尝试了几种方法,但我一直失败。
是否可以访问那里的上下文,或者这没有任何意义?谢谢您的帮助 :)
kotlin - Kotlin 优雅的变异 List 方法三倍, 列表, 列表>
- , 列表
我想尽可能简洁(但清楚地)将 a 转换List<Triple<String, String, String>
为 a Triple<List<String>, List<String>, List<String>>
。
例如,假设执行转换的方法被称为turnOver
,我希望:
如何编写一个简洁、清晰、可能具有功能性的turnOver
函数?
可以使用 Arrow-Kt,我已经将它作为项目依赖项。
kotlin - 如何链接返回 Validated、Option、Either 的函数?(单子变压器)
我有简单的三个函数返回arrow-kt
数据类型
并且想要链接这样的东西(可以使用任何可用的功能而不是map
)
我能想出的唯一解决Validated
方案是Option
用. 有没有更好的功能方式让它在不更新现有功能的情况下工作?Either
flatMap
java - 是否可以将 Kotlin 的代理委托与现有的类/对象(即箭头的 Either)一起使用?
我有一些专门的类,我想使用 Kotlin 和 Arrow 创建它们,它们将环绕 Arrow Either monad。我创建了以下代码来使用 Kotlin 的委托,但我想知道它是否可以简化或变得更惯用。任何建议,将不胜感激。
感谢您的时间与兴趣。
kotlin - 带有协程的 webflux.fn:返回流表示成功,但正文中没有内容;为什么是空的?
我的任务是将一些基于 Reactor 的服务迁移到 webflux.fn + 协程。该服务会生成一个 png 罗盘图像。在从新的基于协程的服务返回给 Postman 之前,我看到了指南针的字节。在 Postman 中,我看到请求成功,但正文中没有内容;空的。我一直无法弄清楚为什么 Flow 返回成功但没有内容。我会很感激你的建议...
谢谢
kotlin - Kotlin - 倍数 IO 的组合
我是 Kotlin 的 Arrow 框架的新手,我有几个问题:
让我们假设
如何以“箭头时尚”的方式实现相同的功能?
我设法得到:
但我Suspension functions can be called only within coroutine body
在第二个中获得bind()
。
编辑:我看到这个帖子有同样的问题。在提供的答案中,它说问题是未涵盖 left/none 选项。但是它被覆盖了,当申请map
到 a时None
,它预计会获得None
.
kotlin - Kotlin 箭头 IO、IO.fx、IO 的区别!效果
我正在尝试在 kotlin 中使用箭头
箭头具有三个功能
我想知道这些之间的区别。我知道 IO.fx 和 IO.fx {!effect} 帮助我们使用副作用,但是两者之间的区别是什么,为什么我要使用一个而不是另一个
kotlin - 解构而不是 .bind() 在 Arrow Monad 理解中不起作用
根据 Arrow 的 Javadoc,有三种绑定 monad 的方法:
第一个和最后一个工作正常但是由于某种原因解构不能,为什么?
在下一个示例中,您可以看到我使用的是解构val (j) = helloJoey().k(),) but that value is interpreted as a
Mono` 而不是字符串。
kotlin - 为什么是 !运算符与 Arrow Monad 理解中的 .bind() 相同?
我们可以bind()
在 Arrow monad 理解中使用的一种方式是“大喊大叫”(第三个示例):
由于 Kotlin 的!
运算符用于否定布尔值,您能解释一下它在 Arrow 中是如何以及为什么以这种方式工作的吗?
kotlin - 如何在 Arrow + Reactor Monad 理解中异步执行
在他下面的一段代码中,每个helloX()
方法都是异步运行的(它是一个在单独的线程中运行的延迟 Mono),请参见下面的完整代码):
但是在日志中我看到它们是连续运行的:
一旦它们全部完成,我怎样才能让它们并行执行并在 monad 理解中聚合所有结果?
带有主要方法()的完整代码:
更新
我已经调整了该方法以将顺序操作与并行操作相结合:
不幸的是 parMapN 可以与 ForMonoK 一起使用:
想法?