01. May 2016

Generic

Generic 通用编程,目的是提高代码复用。

Haskell 中的通用编程,基于代数数据类型,将数据运算映射到代数数据类型上运算。因为多种数据类型可以对应到一种代数数据类型表达式,所以可以实现代码通用。

代数数据类型是指,数据类型的构造类似于代数运算,包含Unit,Multiply,Product等。

在引入GHC.Generic 包后,代数数据类型的一些标识符被导入。开发人员可以使用这些标识符表达基于ADT的Generic编程:

  • Unit 用 U 表示,类比于代数运算中的元,如加法运算的0,乘法运算的1。
  • :*: 表示乘积,形如数据构造器: data Pair a b = (a,b) 和 data Person = Person String Int
  • :+: 表示和,形如数据构造器:data Color = Red | Black | Yellow

Generic编程的步骤是:

more

15. February 2016

代数数据类型 Algebra-Data-Type

Data-Type 即通常的数据类型。数据类型在很多语言中分为原始类型和复合类型。原始类型如:Int、Boolean、Char等,是语言原生提供的原子类型,而复合类型则经过程序构造而成的,如C语言中的 structunion 构造出来的类型。

Algebra 意为代数,代数在具象的意义上,指的是 对数的操作 以及 遵循的规则 构成的一个系统。

—— object (1,2,3,1.0,)

操作 —— operate (+,-,*,/,幂)

规则 —— law (交换律,结合律)

Algebra-Data-Type 就是具备了代数能力的数据类型,即数据类型可以进行代数运算并满足运算法则。

抽象的代数系统来说,操作数和操作的含义是抽象的,而规则是形式上的。

more

18. January 2016

慢慢变老 ?

只有对比,才能发现自己老了:比如对很多事情失去兴趣,对待人和事变的不那么直接率性,而是要考虑和权衡一番。

如果生活很精彩,或者人很忙于自己热爱的事情,那么这种变老的感受会少一些。

老的也慢一些。

因为,一个人真正年轻的时间,其实是很短的,无论男女,其实年轻的时间就是17 - 27 之间而已。再往后走,生理上就慢慢趋于下降,如果生活很平淡,那么对自己变老的现实感更强。

所以,人真的不能对自己说,我年轻,可以胡来!可以任性!

这种话和想法,也就是20岁之前可以这么想这么干,20岁之后,应该找到真正有价值的东西,成为你的找到心里能量的源泉。

保持年轻的唯一途径,就是成就感,无论是事业成功,还是感情上的成功,生活上的精彩。否则,人会被衰老感占据,你唯一的感受就是自己在变老,不如以前。

有些困难,如果不克服,那么就成为了你的阻力,你也许认识到自己一直在解决这个困难想越过去,以至于废了很长时间,视乎得到了一些改善,或者说最终完全解决。而这段时间

more

« ArchivesNext page »