鏡頭構成

如果你有一個 f::Lens' a b 和一個 g::Lens' b c 那麼 f . g 是通過首先跟隨 f 然後 g 獲得的 Lens' a c。值得注意的是:

  • 鏡頭構成為功能(實際上他們只是功能)
  • 如果你想到 Lensview 功能,似乎資料流從左到右 - 這可能會讓你感覺倒退到你對函式組合的正常直覺。另一方面,如果你認為 .-notation 就像在 OO 語言中發生的那樣,它應該感覺很自然。

不僅僅是用 Lens 組成 Lens(.) 可以用來組成幾乎任何“Lens-like”型別。由於型別變得越來越難以理解結果並不總是很容易,但你可以使用 lens 圖表來計算出來。組合物 x . y 具有該圖表中 xy 的型別的最小上限型別。