Functional Geekery Episode 48 – Matthias Felleisen

In this episode I talk with Matthias Felleisen. We talk his history with Schemes from The Little Lisper, How to Design Programs, to Typed Racket. We also cover teaching math to middle schoolers with Bootstrap, and using programming to teach problem solving and more.

Our Guest, Matthias Felleisen

Matthias Felleisen’s home page


On May 2nd and 3rd flatMap(Oslo) is taking place in Oslo, Norway. flatMap(Oslo) is a conference about functional programming, mainly on the JVM. The call for speakers is now open. To find out more visit for more information, and make sure to use code GEEKERY when registering to find out more.

PolyConf 2016 will be taking place on June 30th – July 2nd. The Call For Proposals is now open, and will be taking submissions through the 13th of March. Visit to keep updated with news as more details become available, and to submit your talk proposal.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.


About Matthias
Realm of Racket
William Byrd episode of Functional Geekery
Matthew Flatt episode of Functional Geekery
How Matthias fell in love with parenthesis
How a Ph.D. works and how Dan Friedman led him through his Ph.D.
Essentials of Programming Languages
Research into continuations
The Little Schemer
How to improve teaching The Little Lisper
Structure and Interpretation of Computer Programs
The Seasoned Schemer
The approach of the Socratic manner in The Little Lisper
The Reasoned Schemer
How to Design Programs
“Students didn’t actually get how to write programs well”
Tinkering vs repeatable design process
Teaching programming to teach mathematics
Using programming to teach problem solving
Bootstrap to teach programming
Learning path from middle school through graduating college
“How ‘Hello, World!’ allows them to view problem solving as a very systematic process”
Relationship of How to Design Programs and PLT Scheme/Racket
“Aiming for a programming language in which it was easy to make little languages”
“Domain Specific Languages […] is the ultimate abstraction”
Types as a tool to express what was in one’s mind when designing software
Typed Racket
How Typed Racket came into being in Racket
Interaction between typed and untyped modules
Importance of new, fresh eyes to explore, stretch, and break Typed Racket

As always, a giant Thank You goes to David Belcher for the logo design.

Leave a Reply

Your email address will not be published. Required fields are marked *