Wie Sie wissen bereits, wenn Sie Karte verwenden sie eine Funktion recibes und diese Funktion auf jedes Element derHaskell: Invertierung ‚Karte‘
map f xs is the list obtained by applying f to each element of xs, i.e.,
Aber in meinem Fall Liste gelten habe ich eine Liste von Funktionen y müssen auf einen bestimmten Wert angewendet werden. Dies sind die Arten, um eine bessere Vorstellung zu geben:
data Auto = Auto {plate :: String, currentTank :: Int, tanqSize :: Int} deriving (Show, Eq)
type Services = Car -> Car
service :: Car -> [Services] -> Car
Wie ich vor [Dienstleistungen] erklärt wird eine Liste von Funktionen, die ‚Auto‘ und Rückkehr ‚Car‘ recibe. Ich muss diese Funktionen auf das "Auto" anwenden, das "Service" rezitiert und es mit allen durchgeführten Änderungen zurückgibt.
Hier sind einige Beispiele von Funktionen in der Liste angezeigt:
emptyTank :: Services
reFuel :: Int -> Services
changePlate :: String -> Services
upgradeTank :: Int -> Services
Kennt jemand einen Weg, dies zu lösen? Für den Fall, dass Sie eine geeignetere Funktion kennen, um die Karte zu verwenden, sagen Sie es mir und ich werde mich darum kümmern.
Suche nach '$', 'flip' und currying. – PyRulez
Mögliches Duplikat von [Haskell: Mapping-Funktion-Anwendung] (http://stackoverflow.com/questions/13134857/haskell-mapping-function-application) – amalloy
Dies ist kein Duplikat des Vorschlags; 'service' muss ein einzelnes' Car' zurückgeben, nicht eine Liste des Typs '[Car]'. – chepner