Ich habe folgende Datentyp als Datensatz definiertWie über Datensatzfelder iterieren?
data Config = Config
{ field1 :: String
, field2 :: String
, field3 :: String
}
ich auf jedes Feld von Config
iterieren möchten, wenden Sie eine Funktion String -> String
, zum Beispiel tail
und in neue Config
zurückkehren lassen.
Was ist idiomatische Art, dies zu tun? Vorzugsweise ohne schwere Bibliotheken von Drittanbietern.
Die 'head' Funktion gibt einen' Char' wäre. Ist es richtig zu verstehen, dass Sie den Typ Ihrer Felder abhängig von der zurückgegebenen Funktion ändern möchten? –
Uniplate ist eine leichtgewichtige Generics-Bibliothek, die das wahrscheinlich leicht tun kann. – jberryman
@MichaelSteele meine Schuld, etwas wie 'tail', das den gleichen Typ' String' zurückgibt. Ich habe Fragen aktualisiert –