Skip to content
0:00 / 0:00

#scala#monads#taglessfinal

Pawel Szulc - A road trip with Monads: From MTL, through Tagless to Bio

Scala in the City

2K subscribers • 8 videos on Hallway

YouTube
  • Recommended by 2 people: 2 in engineering communities.
  • Presented by Pawel Szulc

Intermediate. Assumes working knowledge.

2.3K views8 years ago2 recommendations

Programming languagesSoftware designFunctional programmingDesign patterns

Pawel Szulc walks through refactoring an imperative Scala program into purely functional styles, comparing MTL, tagless final, and bifunctor IO.

A road trip with Monads: From MTL, through Tagless to Bio This talk is about a journey: from imperative code to purely functional one. It starts with a program written in imperative style. Its weak spots can be quickly recognized: lack of robustness, testability and maintainability. We seek our salvation in the functional paradigm, but the road to enlightenment, has many dangerous and deceivable dead-ends. The quest has a happy ending, as we reach code that is performant, testable, readable and maintainable. Keep in mind however that knowledge comes from experience. As once someone wise said "Its the not the Destination, it's the Journey." Though it is not a live coding session, it will sure feel like it. Code is written in Scala, parental guidance is advised.

Why it's here

2 people recommend this

What people say. Recommended as an engaging guide to transitioning from imperative code to advanced functional patterns in Scala.

Moments people linked to

u/justinhjin r/scala • Recommends

On “Advice on a good route to Functional Scala”

I loved this talk too link to this video

u/zzyzzyxxin r/scala • Recommends

On “Got a quick question? Ask here - September 24, 2018”

Oh, and here's a good talk I just watched that was published the same day I made my previous comment :D. It walks through converting an imperative program to a monad transformer program to a tagless final program to one based on bifunctor IO. link to this video

u/terence_shillin r/scala • Mentions

On “How to "sell" cats.IO to my team”

> A road trip with Monads by Pawel Szulc Thanks for mentioning the video, seems like a great speaker. Looking at the simple weather app from the video, doesn't it get unwieldy for larger applications to provide the instances at the end or rather to declare how F_ is constrained? For example here link to this video we have: F_: Console: Weather: RequestState: ErrorHandler: Monad Doesn't this get larger and larger the more complex the program is?
1View on Reddit