scala - 通过 Scalaz 找到我的方式

标签 scala functional-programming scalaz scalaz7

这个问题在这里已经有了答案:




9年前关闭。




Possible Duplicate:
Good scalaz introduction



我想了解更多关于 Scalaz 的信息,可能使用 Scalaz7 来避免在宣布稳定后重新连接我的大脑。我的问题是 Scalaz 包含很多功能。虽然其中大部分是独立于其他部分的,但我想对 Scalaz 提供的全局功能及其组织方式有一个鸟瞰图。据我所知,Scalaz 提供了,除其他外,
  • Functor , ApplicativeMonad特征,
  • 新的单子(monad),例如 Validation (编辑:原来它只是一个应用程序)
  • monad 转换器 ( OptionT , EitherT ....)
  • Itereatee小号
  • Lens es
  • Zipper小号

  • 除此之外,还有很多隐式转换和新的构造函数,例如 some它与标准库重叠,但在类型方面表现更好
    :type Some(3) // Some[Int]
    :type some(3) // Option[Int]
    

    我对这些结构中的大多数都有基本的掌握,但我对任何概念都不流利。

    Do you have any suggestion in what order to learn the library, what logical dependencies exist between modules? More generally, where can I find a high level overview of the library?



    编辑 似乎大多数答案都是针对学习函数式编程的基本组件的,比如 monad,所以我会尽量准确一点。我有 Haskell 的基本知识和数学家背景,所以我的问题与范畴论或基本函数式编程无关。

    我的问题是 Scalaz 是一个巨大的库。我不知道在哪里可以找到什么,哪些方法对各种数据类型可用或有用。我真正需要的是一张 map ,例如,它会告诉我,当我想迭代需要处理的资源时,我可能想要考虑迭代对象以及我可以用它做什么类型的操作。更像是图书馆可用功能的全景。

    最佳答案

    我会推荐优秀的系列Learning scalaz由 Eugene Yokota 在 Scalaz 7 上发表。作者遵循 Learn You a Haskell for Great Good 的结构.这种方法是系统的,非常具有教学性。

    关于scala - 通过 Scalaz 找到我的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12387800/

    相关文章:

    macos - sbt 损坏终端显示

    scala - 使用scalaz时如何为 bool 创建半组?

    scala - Spark-cassandra-connector:toArray 不起作用

    Scala-还有另一种方法来编写这个 foreach 方法吗?

    haskell - 函数式编程是否表现出控制流?

    javascript - 我什么时候可以使用 lodash.after()?

    f# - 将选项类型列表压缩为仅非无元素的最佳方法?

    json - 简化 2 个类似的 json 辅助函数

    scala - 在 Scala 中正确编码这种存在类型?

    scala - 重试功能,无需递归