學習軌道
/
F#
F#
/
練習
/
透鏡人
透鏡人

透鏡人

困難

說明

使用 lens 來更新巢狀記錄(僅限於具有不可變資料的語言)。

更新巢狀且不可變的記錄裡的欄位,實在有點煩人。 這類情況的程式碼有多繁瑣,取決於結構有多深。 假設你有一個 Person,裡面包含一個 Address,Address 有一個 Street,Street 又有一個 Number;那麼要更新 Number,就得先用新的 Number 建立一個新的 Street,再用新的 Street 建立新的 Address,最後用新的 Address 建立新的 Person。 已經搞混了嗎?

這個問題的其中一個解法,就是使用 lenses。

用 lenses 實作幾個存取記錄的函式。 測試套件也允許你完全避開 lenses,讓你可以試試不同的做法。

提示

  • 這個練習預期你會使用 Aether 函式庫,它為 F# 加入了 lenses 功能。有了 lenses,你就能輕鬆讀取或更新巢狀結構了。
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
F# Exercism

準備好開始 透鏡人 了嗎?

註冊 Exercism,透過 18 個概念148 個練習 和真人引導來學習並精通 F#,全部免費。