YoVDO

Polymorphic Record Types in a Limited Embedding

Offered By: Scala Days Conferences via YouTube

Tags

Scala Days Courses Scala Courses

Course Description

Overview

Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
Explore polymorphic record types in limited embeddings through this Scala Days Berlin 2016 conference talk. Dive into the "lifted embedding" at the core of Slick, Lightbend's relational database library for Scala. Learn how standard Scala language features enable a DSL for working with database tables using syntax similar to Scala collections. Discover the "Shape" abstraction that allows for standard Scala tuples in the DSL with arbitrary nesting, supporting Slick's HList implementation and custom record types. Understand the role of functional dependencies, added in Scala 2.8, in implementing the "CanBuildFrom" abstraction. Follow the progression from toy Slick AST and lifted representation to complex queries, covering topics such as literal primitive values, extension methods, table instances, tuple encoding, and HList shapes. Gain insights into building efficient and flexible database interactions using Scala's advanced type system features.

Syllabus

Intro
Toy Slick AST
Lifted Representation Reply
Literal Primitive Values
Extension Methods
Tables
Building Concrete Table Instances
Naive Tuple Encoding (ScalaQuery)
Polymorphic Record Types
Functional Dependencies: Example
CanBuildFrom
Primitive Shapes
Nested Tuple Shapes
Shape Implementations
Queries: Filter
Queries: Naive Map
Queries: Map
HList Shapes


Taught by

Scala Days Conferences

Related Courses

Functional Programming Principles in Scala
École Polytechnique Fédérale de Lausanne via Coursera
Functional Program Design in Scala
École Polytechnique Fédérale de Lausanne via Coursera
Parallel programming
École Polytechnique Fédérale de Lausanne via Coursera
Big Data Analysis with Scala and Spark
École Polytechnique Fédérale de Lausanne via Coursera
Functional Programming in Scala Capstone
École Polytechnique Fédérale de Lausanne via Coursera