Sample implementation of functional lenses in Java
Pull request Compare This branch is even with remeniuk:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Implementation of a functional lens in Java, based on this answer [1], given by Daniel Sobral at SO. 

Lense is a convienient way to access and update immutable data structures in a functional world.
Lenses are very useful, when you have a deep hierarchy of objects, and you want to update nested elements in an imperative manner (leaving recreation of the whole object hirarchy behind the scenses). 

Lenses in languages with first-class functions is a quite powerful and elegant tool. In Java, unfortunatelly, you have to use anonymous inner classes to represent function objects, and lenses lose the most of their's glitter.

In some cases, however, lenses can still be useful. E.g., when you want to transform an object, generated by Protobuf builders.