如何为数据编写“显示”类型类

时间:2014-05-01 18:06:20

标签: haskell functional-programming typeclass

我有一个非常简单的data,我想使用Show Typeclass给它一个很好的输出。

data Fruit = Apple | Orange Int 

instance Show Fruit
         where
            show Apple    = "Hey Apple"
            show Orange a = "X number of Orange"

这会出现以下错误,但我不知道如何修复它:

Equations for `show' have different numbers of arguments

1 个答案:

答案 0 :(得分:8)

你刚忘了一些问题:)

instance Show Fruit where
  show Apple      = "Hey Apple"
  show (Orange a) = show a ++ " number of Orange"

Orange a这样的模式需要使用parens消除歧义,例如Apple a,我们确实有两个参数。