John Wiegley: Putting Lenses to Work
Why Hacker News recommends it
HN recommends it as the fastest way to learn lenses by example, with far-out examples later on.
What it is
John Wiegley's BayHac 2017 talk walks through Haskell lenses by example, showing many practical uses beyond simple record access. It is aimed at people who want to become productive with the lens library.
Recommended by 4 HN commenters across 4 different months, 2020 to 2024.
What Hacker News said
Strong rec platz · 2020-06 · on “Haskell for a New Decade [pdf]”
and you can learn enough lens to be productive in 1 hours with this talk without reading docs at all. You can skip the theory and go straight to usage: [this video]
Strong rec turboponyy · 2024-07 · on “Ask HN: What resources do you recommend for learning Haskell?”
As with anything Haskell, one could simply reply with "here's the formal definition." But in easily digestible terms, it's a way to narrow your view over a collection to a subset that satisfies some property, and perhaps perform some operations on that subset. This video presentation (with a very humorous audience dynamic, might I add) serves as a great introduction by example: [this video]
Recommends ParetoOptimal · 2022-06 · on “Dhall: A Gateway Drug to Haskell”
Good examples in "Putting lenses to work" by John Weigley: [this video] Then for a great book that gives a great understanding see Chris Penner's amazing and fun "Optics by example: [LINK]
Recommends ParetoOptimal · 2022-06 · on “Lenses”
> Lenses let you do some amazing things, but I think most of their existence is just thanks to how truly horrible (nested) record field access and updates were. Only for the most basic uses. Architecting programs as folds or traversals can be powerful. One simple example of lenses i can think of being useful for more than record access is: > sumOf (folded . folded) [Just 1, Just 2] 3 More are in this presentation: [this video]
Recommends lgas · 2022-11 · on “Ask HN: What piece of code/codebase blew your mind when you saw it?”
Definitely agree on lenses being one of the more mind blowing things I've encountered and eventually grokked in programming. I would also recommend [this video] as a good video on lenses in part because the latter portion has some pretty far-out examples of that deep well you mentioned.