为什么Haskell有类和继承

时间:2018-04-11 12:34:25

标签: haskell

Haskell的定义是函数式编程语言。

那么为什么在Haskell中有类和继承。

这不是OOP和FP同时这样吗???

如何使用函数式编程在Haskell或Javascript中创建多态。

1 个答案:

答案 0 :(得分:9)

你的前提在两个方向都存在缺陷:

  • 继承和OOP是两个几乎正交的概念。虽然继承与主流OO语言(特别是Java和C#)密切相关,但这些可能与原始精神并不完全相同。
    OO的真正含义是,不是直接操纵其他地方的状态,而是发送“消息”指向一个知道如何安全地做到这一点的物体。
    https://www.aomran.com/object-oriented-programming-is-not-about-objects/
    这并不以任何方式真正适用于Haskell,因为它没有可变状态开始。
  • Haskell没有Java风格的继承(子类型)。它甚至没有Java风格的类:Haskell类是typeclasses,它们更多地与Java接口相对应。