问题标签 [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.

0 投票
1 回答
260 浏览

gradle - 无法为@higherkind 和@extension 生成对象

我定义了两个对象:

  1. data class ParserK注释@higherkind
  2. interface ParserKFunctor注释@extension

这是代码:

当我执行时,./gradlew :app:kaptKotlin我得到:

这是我发现的:

  1. 如果我删除函子定义,则目标成功完成,我可以看到生成的代码。
  2. 如果我@higherkind从数据类中删除ParserK并将生成的源复制到ParserK定义的同一文件中,那么我可以看到生成的仿函数代码。

对我来说似乎是一个错误,如果我错了,请纠正我

更新:

  1. 这是我的代码到存储库的链接:存储库
  2. 错误跟踪器上的问题在这里
0 投票
1 回答
85 浏览

kotlin - 惯用箭头

我有以下方法:

有没有更好/更惯用的方式来使用 Arrow 编写这个?

0 投票
1 回答
831 浏览

kotlin - 使用 Arrow-kt 验证对象

我有一个对象(书),事件应该更新哪些字段(作者更改)。假设这本书的作者字段只有在作者结婚并改名时才会改变,但如果作者刚搬到一个新城市,这本书就不会改变。

在这个简单的情况下,我可以检查是否book.authorName == event.author.name并返回一个Either<NothingChangedFailure, Book>. 但是我怎么能检查不止一个字段呢?如果我继续使用 Either,该过程将在NothingChangedFailure它遇到的第一次停止,但我想汇总所有更新,并且只有NothingChangedFailure在 book 中的所有字段都没有更改时才返回。

我尝试了OptionEither并继续阅读,Validated但如果出现单个失败,它们似乎都失败了整个结果。那么有没有我看不到的选项?

0 投票
2 回答
1012 浏览

kotlin - Kotlin arrow transform a List of failures to a Failure of a list

How can I transform the following:

to:

Using kotlin and the functional library arrow (0.8.2). I would like to wrap it in a custom exception. It does not matter which one of the 'String' failed.

Update:

As the below answers will suffice, but I find it really hard to read. So, I implemented the following:

Create the following function:

}

Then use the result of the function:

0 投票
1 回答
133 浏览

kotlin - FlatMapping ListK 和选项

我不能ListKOf<T>T -> Option<V>.

例如

报告Required (Int) -> ListKOf<Int>. Found (Int) -> Option<Int>

要使其编译,我需要这样做:

是否可以像前面的例子一样编写函数?

0 投票
1 回答
1333 浏览

kotlin - Kotlin 箭头验证的错误列表

我想验证一个 Person 的多个字段并返回一个包含所有相关错误的 Validated 对象。我使用 kotlin 版本 1.3.41 和箭头 0.8.2。

我有以下课程:

因此,当我进行验证时,我希望返回以下结果类型:

箭头库文档并没有真正的帮助,因为我是函数式编程的新手。视频中的示例没有使用最新的箭头版本编译,它需要一个半组:

另一个用途,Emmanuel Nhan 的实现,也不能用最新的 kotlin 版本编译:https ://github.com/enhan/validation-case/blob/master/src/main/kotlin/eu/enhan/validation/kotlin /样本.kt

0 投票
1 回答
883 浏览

kotlin - Kotlin 箭头组合已验证列表

我有以下课程:

当我循环并通过多人进行验证时,我得到:

或者:

如何将上面的列表转换为:

我想累积与所有人验证相关的所有错误。这是必需的,因为我想做以下事情:

当前的“地图”不接受List<ValidatedNel<Error>, Person>>

0 投票
1 回答
111 浏览

kotlin - arrow-kt 中是否有类似 ap2、ap3 的功能?

我在这篇文章中看到了使用的scala 代码。

我尝试将此代码迁移到 kotlin 和箭头,如下所示。

正如您所注意到的,Tuple2必须在add函数签名中指定。查了arrow的官方文档,没有apNap2、ap3、ap4这样的功能。

有没有办法使用不包含Tuple2类型的第二个函数?

0 投票
1 回答
230 浏览

kotlin - Kotlin arrow.kt - Option.getOrElse 接受 T 以外的其他类型

我正在尝试使用 Option.getOrElse() 方法。

根据消息来源:

但是,当我使用返回 type 以外的类型值的 lambda 调用 getOrElse 时T,它​​不会显示任何错误编译时间或运行时。

这似乎不对。我究竟做错了什么?

0 投票
2 回答
371 浏览

kotlin - 如何使用箭头的类型类?

我正在尝试熟悉 arrow-kt 库,但为了完成最简单的事情,我很笨:使用内置类型类之一,即“显示”,我使用 @extension 注释使用 kapt 尝试了它并且 kapt 本身正在按预期生成必要的代码,但是缺少对扩展函数“show():String”的引用。有人可以帮我解决这个问题吗?我浪费了两天时间让这个工作。

非常感谢!

此致

亚历克斯

要扩展的类:

这里我想使用扩展功能:

但是缺少对“fump.show()”的引用 =(