Overview
This course explores Hackett, a programming language that combines the power of the Haskell type system with the Racket macro system. The learning outcomes include understanding how Hackett enables interleaving macroexpansion and typechecking, allowing for new ways to manipulate languages and build embedded DSLs. Participants will learn about Hackett code, underlying Racket technologies, and potential future developments. The course teaches skills such as macro meta programming, working with DSLs, and comparing Hackett's metaprogramming approach with others. The teaching method involves analyzing real Hackett code examples and discussing the language's unique features. This course is intended for programmers interested in exploring advanced metaprogramming concepts and experimenting with language design.
Syllabus
Introduction
What this talk is about
Hackett code
Hackett is a Haskell
Macros
DSLs
Type classes
Macro meta programming
Summary
Macros vs Splices
Staged Restrictions
Taught by
Strange Loop Conference