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

我一直在项目中重新创建练习文件以避免在完成练习之前看到答案,并且它有效。