最近斯卡拉兹引起了我的注意.它看起来很有趣,但我没有找到任何关于图书馆的好介绍.看起来scalaz融合了很多来自haskell和数学的想法.我发现的大多数文章都假设您已经对这些概念感到满意.
我正在寻找的是逐步介绍图书馆和基本概念 - 从简单和基本概念到更高级(基于基础).
我也看了一些例子,但是我很难找到应该开始学习库的地方.
有人可以向我推荐一些好的scalaz介绍或教程(涵盖基础知识和高级概念)吗?或者在答案中给我起点.
谢谢大家的好消息!我总结了所有的答案,并在我的博客中添加了一些链接:
http://hacking-scala.org/post/49050104489/scalaz-resources-for-beginners
对于那些寻找Scalaz API文档的人来说,他们在这里:
http://docs.typelevel.org/api/scalaz/nightly/index.html#package
可能重复:
好的scalaz介绍
我想了解更多有关Scalaz的信息,可能会使用Scalaz7来避免在声明稳定后重新布线.我的问题是Scalaz包含很多功能.虽然大部分内容都是独立于其他部分,但我希望能够全面了解Scalaz提供的全局功能以及它的组织方式.据我所知,Scalaz除其他外提供了
Functor,Applicative和Monad特征,Validation(编辑:原来它只是一个应用)OptionT,EitherT....)Itereatee小号LensESZipper小号除此之外还有很多隐式转换,以及新的构造函数,例如some与标准库重叠但在类型方面表现更好
:type Some(3) // Some[Int]
:type some(3) // Option[Int]
我对大多数这些结构有基本的把握,但我对任何概念都不熟悉.
您对以何种顺序学习库有什么建议吗?模块之间存在哪些逻辑依赖关系?更一般地说,我在哪里可以找到图书馆的高级概述?
编辑似乎大多数答案都是针对学习函数式编程的基本组件,比如monad,所以我会尝试更精确.我有Haskell的基本知识和数学家背景,所以我的问题与类别理论或基本函数式编程无关.
我的问题是Scalaz是一个庞大的图书馆.我不知道在哪里找到什么,在各种数据类型上有哪些方法可用或有用.我真正需要的是一张地图,例如,它会告诉我,当我想要迭代需要处理的资源时,我可能想要考虑迭代以及我可以用它做什么样的操作.更像是图书馆可用功能的全景.