go
-
泛函编程(13)-无穷数据流-Infinite Stream详解编程语言
上节我们提到Stream和List的主要分别是在于Stream的“延后计算“(lazy evaluation)特性。我们还讨论过在处理大规模排…
-
泛函编程(15)-泛函状态-随意数产生器详解编程语言
对于OOP程序员来说,泛函状态变迁(functional state transition)是一个陌生的课题。泛函状态变迁是通过泛函状态数据…
-
泛函编程(17)-泛函状态-State In Action详解编程语言
对OOP编程人员来说,泛函状态State是一种全新的数据类型。我们在上节做了些介绍,在这节我们讨论一下State类型的应用:用一个具体的例子来示范如何使…
-
泛函编程(21)-泛函数据类型-Monoid详解编程语言
Monoid是数学范畴理论(category theory)中的一个特殊范畴(category)。不过我并没有打算花时间从范畴理论的角度去介绍Monoi…
-
泛函编程(23)-泛函数据类型-Monad详解编程语言
简单来说:Monad就是泛函编程中最概括通用的数据模型(高阶数据类型)。它不但涵盖了所有基础类型(primitive types)的泛函行为及操作,而且…
-
泛函编程(35)-泛函Stream IO:IO处理过程-IO Process详解编程语言
IO处理可以说是计算机技术的核心。不是吗?使用计算机的目的就是希望它对输入数据进行运算后向我们输出计算结果。所谓Stream IO简单来说就是对一串按序…
-
泛函编程(36)-泛函Stream IO:IO数据源-IO Source & Sink详解编程语言
上期我们讨论了IO处理过程:Process[I,O]。我们说Process就像电视信号盒子一样有输入端和输出端两头。Process之间可以用一个Process的输出端…
-
泛函编程(37)-泛函Stream IO:通用的IO处理过程-Free Process详解编程语言
在上两篇讨论中我们介绍了IO Process:Process[I,O],它的工作原理、函数组合等。很容易想象,一个完整的IO程序是由 数据源+处理过程+数据终点: S…
-
泛函编程(38)-泛函Stream IO:IO Process in action详解编程语言
在前面的几节讨论里我们终于得出了一个概括又通用的IO Process类型Process[F[_],O]。这个类型同时可以代表数据源(Source)和数据终端(Sink…
-
Scalaz(4)- typeclass:标准类型-Equal,Order,Show,Enum详解编程语言
Scalaz是由一堆的typeclass组成。每一个typeclass具备自己特殊的功能。用户可以通过随意多态(ad-hoc polymorphism)把这些功能施用…