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




已关闭8年。






我想了解更多有关Scalaz的信息,可能会使用Scalaz7避免在声明稳定后重新布线。我的问题是Scalaz包含很多功能。尽管大多数内容都旨在独立于其他部分,但我还是希望对Scalaz提供的全局功能及其组织方式有一个总体了解。据我所知,Scalaz提供的功能包括:

  • FunctorApplicativeMonad特性
  • 新的monad,例如Validation(编辑:原来这只是一个应用程序)
  • monad变形金刚(OptionTEitherT ....)
  • Itereatee
  • Lens
  • Zipper

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

    我对大多数这些构造都有基本的了解,但是我不精通任何概念。



    编辑似乎大多数答案都是针对学习函数式编程的基本组件(如monad),因此,我将尝试更加精确。我具有Haskell的基本知识和数学家的背景,因此我的问题与类别理论或基本函数编程无关。

    我的问题是Scalaz是一个庞大的图书馆。我不知道在哪里可以找到各种数据类型上可用的或有用的方法。我真正需要的是一个映射,例如,它将告诉我,当我要迭代需要处理的资源时,我可能要考虑迭代,以及可以执行哪些操作。更像是该库提供的功能的全景图。

    最佳答案

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

    关于scala - 在Scalaz中找到自己的路,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12387800/

    10-12 14:16