Learning Resources
Here are some various learning resources concerning optics. Feel free to send a PR to add other learning material.
Presentations
- Beyond Lenses: how
Iso
,Prism
,Lens
andOptional
relate to each other (by Julien Truffaut) - Optics with Monocle: Modeling The Part and The Whole: Van Laarhoven Lenses, Prisms and Isos in Monocle, Id/Const Functors, Prism laws & Property testing (by Ilan Godik)
- Lenses: compositional data access and manipulation:
Haskell
Lens
implementation (by Simon Peyton Jones) - Lenses: A Functional Imperative: scalaz
Lens
usage withState
to write functional code that looks like imperative one (by Edward Kmett)
Blog Posts
- Lens implementation: Van Laarhoven
Lens
implementation in Scala (by Julien Truffaut)
Other Optics Libraries
- Haskell Lens: library at the origin of Monocle
- Scalaz:
Lens
andPLens
(for partial lens orOptional
in Monocle) - Shapeless: for boilerplate free
Lens
andPrism
(what shapeless callsPrism
is calledOptional
in Monocle) - Quicklens
Resources in Japanese
- Monocleとかいうのがありまして: Introduction to Monocle (by Naoki Aoyama)
- MonocleのapplyLensメソッドの使い方:
ApplyXXX
usage (by Naoki Aoyama)
Resources in Korean
- Scala Lens Library: Introduction to Monocle (by Hoon Park)