Functional Patterns for the Object Oriented
summary
C# 7.0 adds tuples and pattern matching that let object‑oriented code adopt functional patterns, shown by implementing a CodeDOM‑style AST and preferring traversal functions over node printers to generate a .NET SDK. Haskell examples reimplement the same printers and a simplifier, and a quick check shrinking workflow generates random scripts, reduces 500‑line failures to tiny repros, uncovers a divide‑by‑zero and hundreds of crashes, and materially speeds debugging and quality fixes.
AI-written summary · about
chapters (15)
- 0:00Intro
- 3:33Pattern Matching pre C# 7.0
- 5:44C# Generation at Qlik
- 7:55CodeDom
- 8:43Expression as a Graph
- 10:46Abstract Syntax in Haskell
- 12:25Printing
- 17:10QuickCheck: The Arbitrary Class
- 21:40Arbitrary Expression
- 22:57Computing Tree Depth
- 23:43Property of Simplification
- 25:19The Arbitrary Class: shrink
- 29:38API Testing Using Script Generator
- 31:49Random Test Generation in the Industry
- 34:25References
related talks
32mFive Lines of Code
50mDesign Patterns for Loosely Coupled Applications
28mLanguage Support for Property-Based Testing
01h 01mBreaking Your Code in New and Exciting Ways
48mFunctional Programming
48mThe Functional Tao of Bash
48mDesign patterns to boost your test automation
29mCodemods: Refactoring JavaScript using JavaScript
