假设我有以下记录ADT:
data Foo = Bar { a :: Integer, b :: String, c :: String }
Run Code Online (Sandbox Code Playgroud)
我想要一个记录并返回记录(相同类型)的函数,其中除了一个字段之外的所有字段都具有与作为参数传递的值相同的值,如下所示:
walkDuck x = Bar { a = a x, b = b x, c = lemonadeStand (a x) (b x) }
Run Code Online (Sandbox Code Playgroud)
上面的工作,但对于具有更多字段的记录(比如说10),创建这样的函数将需要大量的打字,我觉得这是非常不必要的.
是否有任何不那么繁琐的方式做同样的事情?