[Haskell-beginners] Lens and imperative programming

Brent Yorgey byorgey at seas.upenn.edu
Fri May 24 20:13:36 CEST 2013


On Fri, May 24, 2013 at 06:41:27PM +0200, Giacomo Tesio wrote:
> For example I'm scared by += a function compositions.
> 
> For example here
> 
> units.traversed.health -= 3
> 
> 
> (from
> http://www.haskellforall.com/2013/05/program-imperatively-using-haskell.html)
> I've some difficult to grasp the type. I can calculate it (or ask ghci :-D)
> , but it looks complex to grasp.
> 
> May be I'm just too new to Haskell tools... but... I fear that in the long
> run, this could become unreadable.

You could already do exactly the same thing without the lens package.
It uses the State monad.  The lens package just makes it much simpler
to write this code.

If you think that overuse of the State monad will lead to bad,
unmaintainable code, you are right.  But that has nothing to do with
lenses.

Lenses can also be used in many contexts which do not involve the
State monad.

-Brent



More information about the Beginners mailing list