假设我有以下记录 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
)的记录,创建这样的函数将需要大量输入,我认为这是非常不必要的。
有没有更乏味的方法来做同样的事情?