我正在慢慢地试图了解这个lens
包是如何工作的。我正在阅读 Edward 的幻灯片(http://comonad.com/haskell/Lenses-Folds-and-Traversals-NYC.pdfStore s a
),我对幻灯片 8 和 9的定义有疑问:
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
其中第一个构造函数参数是setter(放入a
并返回s
数据结构),第二个是getter(a
从s
数据结构中获取)。
谁能确认这是否是幻灯片中的错误,或者我的理解不正确,请解释。
谢谢你。