Ich weiß, es gibt fst
und snd
, aber warum gibt es keine "allgemeine" Definition für solche Accessor-Funktionen mit Typklassen? Ich würde so etwas wieWarum gibt es keine "allgemeinen" Accessor-Funktionen für Tupel in Haskell?
class Get1 p a | p -> a where
get1 :: p -> a
instance Get1 (a,b) a where
get1 (x,_) = x
instance Get1 (a,b,c) a where
get1 (x,_,_) = x
class Get2 p a | p -> a where
get2 :: p -> a
instance Get2 (a,b) b where
get2 (_,x) = x
instance Get2 (a,b,c) b where
get2 (_,x,_) = x
Sure vorschlagen, müssen Sie einige Spracherweiterungen für diese, aber nicht diese viel bequemer wie das? Insbesondere können Sie Instanzen für Ihre eigenen Typen hinzufügen.
Diese und andere Tupel-Extras sind im Paket [tuple] (http://hackage.haskell.org/package/tuple) verfügbar. – is7s
@is7s Danke, ich wusste nicht – Landei
Die Antwort ist wahrscheinlich "weil niemand Tupel sehr viel verwendet". Sicherlich keine großen. – MathematicalOrchid