go
-
Scalaz(7)- typeclass:Applicative-idomatic function application详解编程语言
Applicative,正如它的名称所示,就是FP模式的函数施用(function application)。我们在前面的讨论中不断提到FP模式的操作一…
-
Scalaz(17)- Monad:泛函状态类型-State Monad详解编程语言
我们经常提到函数式编程就是F[T]。这个F可以被视为一种运算模式。我们是在F运算模式的壳子内对T进行计算。理论上来讲,函数式程序的运行状态也应该是在这个运算模式壳子内…
-
Scalaz(23)- 泛函数据结构: Zipper-游标定位详解编程语言
外面沙尘滚滚一直向北去了,意识到年关到了,码农们都回乡过年去了,而我却留在这里玩弄“拉链”。不要想歪了,我说的不是裤裆拉链而是scalaz Zipper,一种泛函数据…
-
Scalaz(26)- Lens: 函数式不可变对象数据操作方式详解编程语言
scala中的case class是一种特殊的对象:由编译器(compiler)自动生成字段的getter和setter。如下面的例子: 1 case class C…
-
Scalaz(32)- Free :lift – Monad生产线详解编程语言
在前面的讨论里我们提到自由数据结构就是产生某种类型的最简化结构,比如:free monoid, free monad, free catego…
-
Scalaz(33)- Free :算式-Monadic Programming详解编程语言
在任何模式的编程过程中都无法避免副作用的产生。我们可以用F[A]这种类型模拟FP的运算指令:A是可能产生副作用的运算,F[_]是个代数数据类型ADT(Algebrai…
-
Scalaz(34)- Free :算法-Interpretation详解编程语言
我们说过自由数据结构(free structures)是表达数据类型的最简单结构。List[A]是个数据结构,它是生成A类型Monoid的最简单结构,因为我们可以用L…
-
Scalaz(36)- Free :实践-Free In Action – 实用体验详解编程语言
在上面几期讨论中我们连续介绍了Free Monad。因为FP是纯函数编程,也既是纯函数的组合集成,要求把纯代码和副作用代码可以分离开来。Free Monad的程序描述…
-
Scalaz(39)- Free :a real monadic program详解编程语言
一直感觉FP比较虚,可能太多学术性的东西,不知道如何把这些由数学理论在背后支持的一套全新数据类型和数据结构在现实开发中加以使用。直到Free Monad,…
-
Scalaz(40)- Free :versioned up,再回顾详解编程语言
在上一篇讨论里我在设计示范例子时遇到了一些麻烦。由于Free Monad可能是一种主流的FP编程规范,所以在进入实质编程之前必须把所有东西都搞清楚。前面遇…