Skip to content
0:00 / 0:00

#profunctors#optics#lenses

Deconstructing Lambdas—An Awkward Guide to Programming Without Functions

Berlin Functional Programming Group

2K subscribers • 8 videos on Hallway

YouTube
  • Recommended by 2 people: 2 in engineering communities.
  • Presented by Chris Penner

Advanced. Deep dive for people who know the field.

5.5K views5 years ago2 recommendations

Programming languagesComputer scienceHaskellFunctional programmingComputation and complexity

Chris Penner explores how profunctors and profunctor transformations serve as foundational computing tools by expressing programming patterns without functions.

With Chris Penner! We'll explore how profunctors are a foundational computing tool by expressing many programming patterns using the profunctor class hierarchy and profunctor transformations (a.k.a. hypermorphisms, a generalization over profunctor optics). Chris Penner is a Haskell hobbyist and self-proclaimed incarnation of "Cunningham's Law". He enjoys writing and often blogs about Lenses, Representable Functors, Monoids, and everything in between. He recently wrote "Optics by Example", a compendium on the elusive art of lenses, prisms, traversals, and their applications in functional programming. In his spare time, you can find him in the park doing handstands or writing Progressive Metal tracks on his 1989 Nintendo Gameboy. Slides for this talk: dropbox.com/s/1gxkl8x9pwh2muy/deconstructing-lambdas.pdf?dl=… This virtual talk was brought to you by the Berlin Functional Programming Group. Join us on Meetup: meetup.com/Berlin-Functional-Programming-Group/ Follow us on Twitter: twitter.com/BerlinFPGroup Buy a T-shirt: teespring.com/berlin-fp-group Support us on Patreon: patreon.com/bfpg

Why it's here

2 people recommend this

What people say. Recommended as a deep dive into profunctors and functional programming concepts in Haskell.

u/sohang-3112in r/haskell • Recommends

Deconstructing Lambdas—An Awkward Guide to Programming Without Functions

u/ysangkokin r/haskell • Recommends

Deconstructing Lambdas—An Awkward Guide to Programming Without Functions

u/barsoapin r/compsci • Mentions

On “How important is the principle of explosion of classical logic in CS?”

It's essential: The sum monoid of a cartesian closed category relies on it and without CCC, there would be no lambda calculus (and not a lot of things in general). Have some very hackish haskell yoga. Note `Absurd`, which is a morphism from the empty type to any type. Without you couldn't go from `Either Void a` over `Either a a` to `a`. The tl;dr of that is that without the principle of explosion, you won't get it to typecheck. Of course it doesn't have any computational meaning because, well, you cannot construct values of the empty type, but that doesn't mean that it's not necessary: That it is impossible is the very point, a value of type `Either Void a` can never be a `Left`, it's alwa…

u/RobertPeszekin r/typescript • Mentions

…cross-compilation to another language, allowing developer to write proofs in say COQ for some Haskell code (I never done it). This has some of the feel of the old UML. Some special purpose language agnostic tools like TLA+ (Lamport's tools for reasoning about distributed code) exist too. A super interesting idea was presented by Chris Penner (link to this video Very roughly think about functions as an abstraction without blows and whistles included. If you know the concept of Arrow think about _Arrow_ without the _arr_ (without ability to make any pure function into an arrow). This idea could lead to some very interesting cross language developments. But I am unaware of any progress on this.…