我正在慢慢地试图了解这个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数据结构中获取)。
谁能确认这是否是幻灯片中的错误,或者我的理解不正确,请解释。
谢谢你。