假设我有以下的记录ADT:
data Foo = Bar { a :: Integer, b :: String, c :: String }
我希望有一个函数,它接受一条记录并返回一条记录(相同类型的)其中除了一个字段与传递的参数具有相同的值以外,其余所有字段都具有相同的值,就像这样:
walkDuck x = Bar { a = a x, b = b x, c = lemonadeStand (a x) (b x) }
上述方法可行,但对于具有更多字段(比如说10
个字段)的记录,创建这样的函数将需要大量的打字,我认为这是相当不必要的。有没有更简便的方式来实现相同的功能?