1
我正在慢慢地試圖圍繞lens
程序包的工作原理進行包裝。我讀愛德華的幻燈片(http://comonad.com/haskell/Lenses-Folds-and-Traversals-NYC.pdf),我有一個關於Store s a
載玻片上的8和9的定義問題:Edward Kmett演示文稿中的鏡頭定義不正確?
newtype Lens s a = Lens (s -> Store s a)
data Store s a = Store (s -> a) s
的定義是倒退?如果鏡片是對getter和setter的,在我看來,作爲Store s a
應該定義:
data Store s a = Store (a -> s) a
其中第一個構造函數的參數是二傳手(把一個a
並返回s
數據結構),第二個是獲取者(從s
數據結構獲取a
)。
任何人都可以確認它是否是幻燈片中的錯誤,或者如果我的理解不正確,請解釋。
謝謝。
啊,它實際上是'儲存一個s';我誤讀了。對困惑感到抱歉 :( – gnuvince