自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 Scalaz(11)- Monad:你存在的意义

前面提到了scalaz是个函数式编程(FP)工具库。它提供了许多新的数据类型、拓展的标准类型及完整的一套typeclass来支持scala语言的函数式编程模式。我们知道:对于任何类型,我们只需要实现这个类型的typeclass实例就可以在对这个类型施用所对应typeclass提供的所有组件函数了(combinator)。突然之间我们的焦点好像都放在了如何获取typeclass实例上了,从而忽略了详

2015-10-28 13:46:16 648

原创 Scalaz(10)- Monad:就是一种函数式编程模式-a design pattern

Monad typeclass不是一种类型,而是一种程序设计模式(design pattern),是泛函编程中最重要的编程方式,因而很多行内人把FP又称为Monadic Programming。这其中代表的重要性不言而喻。Scalaz是通过Monad typeclass为数据运算的程序提供了一套规范的编程方式,如著名的for-comprehension。而不同类型的Monad实例则会支持不同的程序

2015-10-20 06:26:58 936

原创 Scalaz(9)- typeclass:checking instance abiding the laws

在前几篇关于Functor和Applilcative typeclass的讨论中我们自定义了一个类型Configure,Configure类型的定义是这样的: case class Configure[+A](get: A) object Configure { implicit val configFunctor = new Functor[Configure] { d

2015-10-13 19:53:59 705

原创 Scalaz(8)- typeclass:Monoid and Foldable

Monoid是种最简单的typeclass类型。我们先看看scalaz的typeclass定义:scalaz/Monoid.scala trait Monoid[F] extends Semigroup[F] { self => //// /** The identity element for `append`. */ def zero: F ... Monoid trait

2015-10-09 21:36:13 570

原创 Scalaz(7)- typeclass:Applicative-idomatic function application

Applicative,正如它的名称所示,就是FP模式的函数施用(function application)。我们在前面的讨论中不断提到FP模式的操作一般都在管道里进行的,因为FP的变量表达形式是这样的:F[A],即变量A是包嵌在F结构里的。Scalaz的Applicative typeclass提供了各种类型的函数施用(function application)和升格(lifting)方法。与其

2015-10-05 11:47:52 600

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除