YoVDO

What to Leave Implicit

Offered By: Scala Days Conferences via YouTube

Tags

Scala Days Courses Programming Courses Software Development Courses Scala Courses

Course Description

Overview

Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
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

Related Courses

Software as a Service
University of California, Berkeley via Coursera
Software Testing
University of Utah via Udacity
The Hardware/Software Interface
University of Washington via Coursera
Software Debugging
Saarland University via Udacity
Introduction to Systematic Program Design - Part 1
The University of British Columbia via Coursera