Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

YouTube

What to Leave Implicit

Scala Days Conferences via YouTube

Overview

Explore the intricacies of implicit programming in Scala through this keynote address delivered at Scala Days Chicago 2017. Delve into the three I's of Scala - Imports, Inheritance, and Implicits - with a particular focus on the central yet controversial role of implicits. Examine the various aspects of implicits, including their current implementation and potential future developments. Analyze the benefits and challenges associated with implicit programming, covering design principles, implementation strategies, and ergonomic considerations. Learn about implicit classes, extension methods, late trait implementation, and implicit parameters. Discover how implicits can prove theorems, establish context, and implement type classes. Investigate proposed improvements such as lazy implicits, multiple implicit parameter lists, and implicit function types. Gain insights into coherence rules, parametricity, and efficiency considerations. Explore practical applications through examples like the Reader Monad and the Builder Pattern, enhancing your understanding of advanced Scala programming concepts.

Syllabus

Intro
Traditional ways to express context
The Functional Way
Functional is Good
Ground Rules
Implicit Classes
Reasoning Footprint of Implicitness
Extension Methods
Late Tralt Implementation
What about simple conversions?
Anti Patterns
Implicit Parameters - Use Cases Implicit parameters can
Prove Theorems
Establish Context
Implement Type Classes
Tighten Rules for Implicit Conversions
Lazy Implicits
Multiple Implicit Parameter Lists
Coherence Rules Out Ambiguities
Parametricity
Implicit Function Types
Towards a solution
Two Rules for Typing
Revised Example
Efficiency
The Reader Monad
An encore: The Builder Pattern
Scala Implementation

Taught by

Scala Days Conferences

Reviews

Start your review of What to Leave Implicit

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.