Overview
Syllabus
Scala DSLs and Probabilistic Programming
Statistics from a Programmer's Perspective
What is Stan?
Example: Predicting Weight
A More Accurate Model?
Beyond Simple Regression
What is an Embedded DSL?
Why Embed the DSL?
Overview
Stan within the Scala Type System
Creating Stan Types
Stan Values
Subclassing is Not Enough
Implicits/Type Classes
Operator Type-Checking Using Implicits
Random Number Generation
Implicits to Enforce Scope
Using Scala Types to Check Input Data
Detour: The State Monad
Type Checking of Stan at Scala Run-Time
Conclusion
Taught by
Strange Loop Conference