25
Wie kann ich mehrere Klasse Zwänge haben, also wenn A
ein Eq
und B
ist ein Num
, könnte ich sagen, entwederHaskell Typ Signatur mit mehreren Klasse Einschränkungen
f :: Eq a => a -> b`
oder
f :: Num b => a -> b
So , wie kann ich Eq a =>
und Num b =>
zur gleichen Zeit haben?
f :: Eq a => Num b => a -> b
,f :: Eq a -> Num b => a -> b
undf :: Eq a, Num b => a -> b
tat nicht, was ich wollte.
Aha! Vielen Dank. Bilden diese Klammern mit einem Komma ein höheres Tupel irgendeiner Art oder ist das eine andere Bedeutung von Klammern? –
@Andrew eigentlich tun sie (jetzt), obwohl Sie sich wahrscheinlich gerade nicht solche Dinge gerade jetzt sorgen sollten. Normall Haskell-Typen haben * kind * (Typ des Typs) '*', so dass der Tupel-Typ eine Art '* -> * -> *' hat. In neueren Versionen von GHC gibt es eine neue Art 'Constraint', so dass' Eq :: * -> Constraint' und Tupel auf diese neue Art hochgestuft wurden. –