Let's make a functional language!
summary
A tiny language called OreScript with Ruby/JavaScript-like syntax implements numbers, booleans, single-argument functions (curried multi-arg via nesting), fn for lambdas and no semicolons, and performs static typing by Hindley-Milner inference. The system generates equality constraints from AST nodes and solves them by constraint generation and unification, representing unknowns as numbered type variables and finally replacing them with concrete types; let‑polymorphism handles the polymorphic id case.
AI-written summary · about
chapters (10)
- 0:00Introduction to talk
- 1:14What is a typed language
- 6:55What is type inference
- 10:54Hindley Milner type system
- 13:57OreScript language basics
- 19:54Type inference process
- 25:13Type checking in OreScript
- 27:31Implementing OreScript
- 31:09Summary and references
- 32:20Q&A session
related talks
49mFun with the Lambda Calculus
35mOutperforming Imperative with Pure Functional Languages
46mInventing a language (placeholder title)
45mHow to Make a Programming Language
58mKeynote: Why Functional Programming Matters
33mBetter Ruby through Functional Programming
25mIntroducing Emily Simplifying Functional Programming
53mY Not- Adventures in Functional Programming
