
On Tue, Jan 27, 2015 at 9:29 PM, David Turner
On 27 January 2015 at 17:23, Charles Durham
wrote: You need to sign up for it, but this is a phenomenal talk by simon peyton jones describing the idea behind lenses the way he understood it.
https://skillsmatter.com/skillscasts/4251-lenses-compositional-data-access-a...
Thanks, I think that was exactly what I needed to know.
If I understand the key section right, you can do all that stuff with a straight get/set pair but it'd be desperately inefficient, so then you add an update function, and then one at Maybe and [] and IO and they all start to look the same so you generalise to all Functors, and then you discover that using Const you get a getter, and Identity gives you a setter, so you can throw them away and end up with a lens as we know it.
And then you generalise it in about a billion other directions and you end up with the lens library!
Just wanted to note that 'lens' is not the only lens library. There are many others (data-lens, fclabels, data-accessor, ...) and most use a getter/setter or getter/modifier combination. Erik