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
定義が逆?Store s a
レンズがゲッターとセッターのペアである場合、次のように定義する必要があるように思えます。
data Store s a = Store (a -> s) a
ここで、最初のコンストラクタ パラメータはセッター (データ構造を入れてa
返すs
) で、2 番目はゲッター (データ構造a
から をフェッチするs
) です。
それがスライドのエラーなのか、それとも私の理解が間違っているのか、誰でも確認できますか?説明してください。
ありがとうございました。