比方說,我有如下記錄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
),創造了這樣的功能將需要大量的輸入,我覺得完全沒有必要。
有沒有更簡單的方法來做同樣的事情?
用於更新的記錄語法存在,但很快就會變得麻煩。請看[鏡頭](http://stackoverflow.com/questions/5767129/lenses-fclabels-data-accessor-which-library-for-structure-access-and-mutatio)。 – 2013-02-19 13:15:28