Diciamo che ho il seguente record ADT:
data Foo = Bar { a :: Integer, b :: String, c :: String }
Voglio una funzione che prende un record e restituisce un record (dello stesso tipo) in cui tutti i campi tranne uno hanno valori identici a quello passato come argomento, in questo modo:
walkDuck x = Bar { a = a x, b = b x, c = lemonadeStand (a x) (b x) }
Quanto sopra funziona, ma per un record con più campi (diciamo 10
), la creazione di una tale funzione comporterebbe un sacco di digitazione che ritengo sia abbastanza inutile.
Esistono modi meno noiosi per fare lo stesso?