鏡頭構成
如果你有一個 f::Lens' a b
和一個 g::Lens' b c
那麼 f . g
是通過首先跟隨 f
然後 g
獲得的 Lens' a c
。值得注意的是:
- 鏡頭構成為功能(實際上他們只是在功能)
- 如果你想到
Lens
的view
功能,似乎資料流從左到右 - 這可能會讓你感覺倒退到你對函式組合的正常直覺。另一方面,如果你認為.
-notation 就像在 OO 語言中發生的那樣,它應該感覺很自然。
不僅僅是用 Lens
組成 Lens
,(.)
可以用來組成幾乎任何“Lens
-like”型別。由於型別變得越來越難以理解結果並不總是很容易,但你可以使用 lens
圖表來計算出來。組合物 x . y
具有該圖表中 x
和 y
的型別的最小上限型別。