Haskell typeclass
Haskell 中也有class关键字,但其目的却和 OO 中的类有着巨大的差别。在 OO 世界中,类用来描述一大堆具有共同数据和行为的对象的抽象;而 Haskell 中的 class 则是用于抽象提供同样函数接口的数据类型。每一个 ADT 都可以用instance来生命其满足某个 class 并且给出对应于具体...
Haskell 中也有class关键字,但其目的却和 OO 中的类有着巨大的差别。在 OO 世界中,类用来描述一大堆具有共同数据和行为的对象的抽象;而 Haskell 中的 class 则是用于抽象提供同样函数接口的数据类型。每一个 ADT 都可以用instance来生命其满足某个 class 并且给出对应于具体...
作为纯函数式语言,haskell的主要特征之一即是提供丰富的函数式变成设施,包括 recursion / composition / lambda / partial & currying 等。Haskell本身的强类型约束和延迟赋值,使得其函数式风格明显区别于流行的 ruby/python 等其它语言。
Haskell的类型系统是强类型的,并且没有任何强制类型转换。所有的类型检查均在编译器做检查。定义新的数据类型之后,即使它们内在的数据结构完全一样,也是完全不同的数据类型,不能混用。
文本处理是Python/Ruby这类脚本语言的重头戏之一,而强大的正则表达式支持对于文本处理来说也是必不可少的。Ruby的设计很多方面沿袭perl,正则表达式方面也不例外。
和其它的面向对象语言类似,ruby的类方法也分为_class method_ 和 instance method, module和class具有相当大程度的相似性, 但是用于重用module中定义的方法时( 同样也有 class method 和 instance method 之分 ),又有一些微妙的差异。