方程有不同数量的参数

时间:2015-07-09 03:39:48

标签: haskell types

我制作了这些数据类型来表示吉他标签,我尝试编写show函数将它们打印为真正的吉他标签。 data不是我的专长,而且我在匹配类型方面遇到了麻烦。

错误是

  

`show'的方程式有不同数量的论点       在GHC.Show.Show Tabs.Chord'

的实例声明中

代码:

type Strings = Int

data Fret = None | Note Int

instance Show Fret where
  show None = "-"
  show (Note a) = show a

data Chord = EmptyChord Strings | Chord [Fret]

instance Show Chord where
  show EmptyChord a = init $ take (a * 2) ['-', '\n' ..]
  show Chord (x : xs) = x : '\n' : show xs

1 个答案:

答案 0 :(得分:6)

第二个实例需要更多括号:

instance Show Chord where
  show (EmptyChord a) = init $ take (a * 2) ['-', '\n' ..]
  show (Chord (x : xs)) = x : '\n' : show xs