A Clear Picture of Lens Laws - Functional Pearl.

Sebastian Fischer,Zhenjiang Hu,Hugo Pacheco
DOI: https://doi.org/10.1007/978-3-319-19797-5_10
2015-01-01
Abstract:A lens is an optical device which refracts light. Properly adjusted, it can be used to project sharp images of objects onto a screen-a principle underlying photography as well as human vision. Striving for clarity, we shift our focus to lenses as abstractions for bidirectional programming. By means of standard mathematical terminology as well as intuitive properties of bidirectional programs, we observe different ways to characterize lenses and show exactly how their laws interact. Like proper adjustment of optical lenses is essential for taking clear pictures, proper organization of lens laws is essential for forming a clear picture of different lens classes. Incidentally, the process of understanding bidirectional lenses clearly is quite similar to the process of taking a good picture.By showing that it is exactly the backward computation which defines lenses of a certain standard class, we provide an unusual perspective, as contemporary research tends to focus on the forward computation.
What problem does this paper attempt to address?