Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Sample implementation of functional lenses in Java

branch: master

This branch is 0 commits ahead and 0 commits behind master

Fetching latest commit…

Cannot retrieve the latest commit at this time

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.

Something went wrong with that request. Please try again.