Diyelim ki aşağıdaki ADT kaydına sahibim:
data Foo = Bar { a :: Integer, b :: String, c :: String }
Bir kayıt alan ve alanlardan biri hariç tümünün bağımsız değişken olarak iletilenle aynı değerlere sahip olduğu bir kayıt (aynı türden) döndüren bir işlev istiyorum, örneğin:
walkDuck x = Bar { a = a x, b = b x, c = lemonadeStand (a x) (b x) }
Yukarıdakiler işe yarıyor, ancak daha fazla alana sahip bir kayıt için (örneğin 10
), böyle bir işlev oluşturmak, oldukça gereksiz olduğunu düşündüğüm çok sayıda yazmayı gerektirecektir.
Aynısını yapmanın daha az sıkıcı yolları var mı?