Disons que j'ai l'enregistrement ADT suivant:
data Foo = Bar { a :: Integer, b :: String, c :: String }
Je veux une fonction qui prend un enregistrement et renvoie un enregistrement (du même type) où tous les champs sauf un ont des valeurs identiques à celui passé en argument, comme ceci:
walkDuck x = Bar { a = a x, b = b x, c = lemonadeStand (a x) (b x) }
Ce qui précède fonctionne, mais pour un enregistrement avec plus de champs (par exemple 10
), la création d'une telle fonction impliquerait beaucoup de frappe qui, à mon avis, est tout à fait inutile.
Existe-t-il des moyens moins fastidieux de faire de même?