这个问题已经在这里有答案 :
使用哈斯克尔我想组功能结合在一起,我会使用面向对象的其他语言。 具体如下答复这个问题
哈斯克尔是否支持面向对象的编程
让我们假设我有型
data Class = Obj { a :: Int -> Int, b :: Int -> Int }
现在我想定义几个其他功能(方法因为它是),是根据a和b的。 这样做的一个方法是定义像
c :: Class -> Int -> Int
c obj x = myb (mya x)
where mya = a obj
myb = b obj
d :: Class -> Int -> Int
d obj x = myb (myc x)
where myb = b obj
myc = c obj
然而,这意味着在每个正则表达式模式需要显式列表(``在那里'子句中)我使用的其他功能。 我的问题是:是否有一个较短的方式来实现这一目标?