Kotlin 中的函数式编程,Manning 书:Arrow 代码需要更新
Functional Programming in Kotlin, Manning book: Arrow code needs update
虽然这本书在 8 月份刚刚定稿,但他们似乎在代码示例中使用了一些已弃用的 Arrow 库代码。
这是第 6 章中的示例:
清单 6.18。使用 for-comprehension 的状态传播。
val ns2: State<RNG, List<Int>> =
State.fx(Id.monad()) {
val x: Int = int.bind()
val y: Int = int.bind()
val xs: List<Int> = ints(x).bind()
xs.map { it % y }
}
使用最新的 Arrow 库,上面的代码片段未能通过 Idea 中的语法检查器。 'Id' 未被识别,Arrow 文档说它已被弃用。
想知道是否有人可以帮助将其重构为当前的 Arrow 版本,或者推荐可以使用的先前版本?
我能够就此问题联系作者。
目前,最新的 Arrow 库没有更新的代码示例,但他们可能会在将来发布。
与此同时,有一个 git 代码库(Idea 项目)可以与旧库一起使用。可以在这里找到:Functional Programming in Kotlin
我一直在项目中重新创建练习文件以避免在完成练习之前看到答案,并且它有效。
虽然这本书在 8 月份刚刚定稿,但他们似乎在代码示例中使用了一些已弃用的 Arrow 库代码。
这是第 6 章中的示例:
清单 6.18。使用 for-comprehension 的状态传播。
val ns2: State<RNG, List<Int>> =
State.fx(Id.monad()) {
val x: Int = int.bind()
val y: Int = int.bind()
val xs: List<Int> = ints(x).bind()
xs.map { it % y }
}
使用最新的 Arrow 库,上面的代码片段未能通过 Idea 中的语法检查器。 'Id' 未被识别,Arrow 文档说它已被弃用。
想知道是否有人可以帮助将其重构为当前的 Arrow 版本,或者推荐可以使用的先前版本?
我能够就此问题联系作者。
目前,最新的 Arrow 库没有更新的代码示例,但他们可能会在将来发布。
与此同时,有一个 git 代码库(Idea 项目)可以与旧库一起使用。可以在这里找到:Functional Programming in Kotlin
我一直在项目中重新创建练习文件以避免在完成练习之前看到答案,并且它有效。