Skip to content

"Why s t a b?", a talk about lens by Samuel Gélineau

Photo of Francis Toth
Hosted By
Francis T. and 2 others
"Why s t a b?", a talk about lens by Samuel Gélineau

Details

Optics (a.k.a. lenses) are very popular in the functional programming world, as every major functional language has at least one optics library. An optic is a first-class value representing a relationship between a big type and a smaller type, such as "a list of list of integers contains many integers". This way, we can add or print all those integers in one step, without having to write two nested folds.

This talk introduces the main kinds of optics provided by Haskell's lens library, but also goes deeper into the implementation by explaining how those optics are implemented. The question with which the adventure begins will only make sense if you're already familiar with optics, but here it is anyway: why do most optics list their type parameters in the order `s`, `t`, `a`, then `b`, and not some other order?

Note: We had to cancel the planned talk about system's programming in Rust by Julian Squires, as he had to cancel the talk. Thus, the meetup is pushed to the first Wednesday of February to continue our tradition of holding the meetup in the first Wednesday in the month. Thanks for your understanding

Photo of Lambda Montreal group
Lambda Montreal
See more events
AdGear
460 McGill, Suite 200 · Montréal, QC