Zur Zeit extrahieren, verwende ich Liste Verständnis durch eine Liste meiner benutzerdefinierten DatentypWie mehrere Werte aus einem Datensatz Haskell
data Person = Person{ fname :: String
, lname :: String
, age :: Int
, siblings :: [String]
}
Das Problem zur Zeit zu gehen ist ich tue ["First name: " ++ fname z ++ "\n" ++ "Last name: " ++ lname z]
wo jeder z
a Person
aus einer Liste von Person
.
Ich habe
fas :: [Person] -> [String]
fas listOfPerson = map fname listOfPerson
so etwas wie
versucht, mit, aber wie kann ich Karte verwenden, um mehrere Felder aus dem Datensatz zu bekommen? von was ich verstehe Karte nimmt eine Funktion und eine Liste und wendet diese Funktion auf jedes Element in der Liste, eine neue Liste. Da ich möchte, dass die Ausgabe eine einzige Liste ist, muss ich nurmap
einmal aufrufen, oder kombinieren Sie mehrere Kartenaufrufe irgendwie in einer einzigen Liste, wo alle Informationen in Ordnung sind?
z. B. so etwas wie das?
fas :: [Person] -> [String]
fas listOfPerson = map (fname, lname, age) listOfPerson
danke
Destrukturierung nachschlagen. Sie können alle Datensatzfelder in der Parameterliste der Funktion binden, indem Sie sie verwenden. – Carcigenicate