30

どうすれば複数のクラス制約を設定できるので、Aがで、EqBである場合Num、次のいずれかを言うことができます。

f :: Eq a => a -> b`

また

f :: Num b => a -> b

Eq a =>それで、どうすればNum b =>同時に持つことができますか?

  • f :: Eq a => Num b => a -> b
  • f :: Eq a -> Num b => a -> b、 と
  • f :: Eq a, Num b => a -> b

私が望んでいたことをしませんでした。

4

1 に答える 1

59

それらは通常、型クラスと呼ばれるように、クラス制約と呼ばれます。EqNum

これはどう?

f :: (Eq a, Num b) => a -> b

括弧は重要です。

于 2012-06-19T03:10:01.887 に答える