使用 lens 來更新巢狀記錄(僅限於具有不可變資料的語言)。
更新巢狀且不可變的記錄裡的欄位,實在有點煩人。 這類情況的程式碼有多繁瑣,取決於結構有多深。 假設你有一個 Person,裡面包含一個 Address,Address 有一個 Street,Street 又有一個 Number;那麼要更新 Number,就得先用新的 Number 建立一個新的 Street,再用新的 Street 建立新的 Address,最後用新的 Address 建立新的 Person。 已經搞混了嗎?
這個問題的其中一個解法,就是使用 lenses。
用 lenses 實作幾個存取記錄的函式。 測試套件也允許你完全避開 lenses,讓你可以試試不同的做法。