Skip to content
0:00 / 0:00

#taglessfinal#scala#cats

Tagless Final - Part 4.1 - Power to the Interpreters! ✊

DevInsideYou

13K subscribers • 51 videos on Hallway

YouTube

Advanced. Deep dive for people who know the field.

2.7K views6 years ago1 recommendation

Programming languagesSoftware designFunctional programmingScalaDesign patterns

How to design tagless final DSLs in Scala that defer design decisions to type-safe interpreters.

In this video we will see how useful it is to make less decisions in the DSLs and allow the interpreters to drive ALL the necessary design details in a type-safe way so that the DSLs and our programs can remain untouched when the interpreters change. The commit from this (technically from the next) video is here: github.com/DevInsideYou/tagless-final/commit/f266873ffe98952… The code for the entire series is here: github.com/DevInsideYou/tagless-final The Cats' Functor Hierarchy is here: cdn.rawgit.com/tpolecat/cats-infographic/master/cats.svg Structure and Interpretation of Computer Programs (SICP): web.mit.edu/alexmv/6.037/sicp.pdf Oleg Kiselyov's website: okmij.org/ftp/ The "Typed Tagless Final Interpreters" paper from Oleg Kiselyov's website: okmij.org/ftp/tagless-final/course/lecture.pdf If you decide to follow along with the paper, this might help: gist.github.com/OlivierBlanvillain/48bb5c66dbb0557da50465809… The "Extensible Denotational Language Specifications" paper by Robert Cartwright and Matthias Felleisen: pdfs.semanticscholar.org/321c/a540ce3a9beed5db54c8f8047191b8… This video is part of the following playlist: youtube.com/playlist?list=PLJGDHERh23x-3_T3Dua6Fwp4KlG0J25DI Table of Contents: Introduction Adding F[_] to the DSL Division with hardcoded Either Issues with hardcoding Either into division Relation to the todo app Adding F[_] to the interpreters Adding F[_] to the programs Adding F[_] to the main Id Website: devinsideyou.com Patreon: patreon.devinsideyou.com Discord: discord.devinsideyou.com Telegram: telegram.devinsideyou.com Twitter: twitter.devinsideyou.com GitHub: github.devinsideyou.com LBRY: lbry.devinsideyou.com Install scripts: install.devinsideyou.com Giter8 templates: g8.devinsideyou.com Spotify concentration playlist: code.radio.devinsideyou.com Cheers and Happy Coding! #tf #Scala #tutorial

Why it's here

1 person recommends this

u/agilesteelin r/scala • Recommends

Tagless Final - Part 4.1 - Power to the Interpreters! ✊

u/agilesteelin r/functionalprogramming • Recommends

Tagless Final - Part 4.1 - Power to the Interpreters! ✊