Functional Geekery Episode 91 – Jay McCarthy

In this episode I talk with Jay McCarthy. We talk his intro to software, functional programming, Racket, relation between the Unix Philosophy and functional programming, more Racket, continuations, verified programming, and much, much more.

Our Guest, Jay McCarthy

@jeapostrophe on Twitter
jeapostrophe on Github

Conference Announcements

Call for presenters is now open for Velocity London 2017. Visit for more information and to submit your proposal.

The Call for Presenters is now open for Software Architecture in London, UK. Visit for more information and to submit your proposal.

flatMap(Oslo) is a FP-conference with focus on Scala and the JVM, taking place on May 2nd and 3rd in Oslo, Norway. Please go to to learn more.

ElixirConf EU will be taking place on May 4th and 5th with tutorials on May 3rd. For more information visit:

OSCON will be taking place May 8-11 in Austin, TX. For more information and to register visit:, and use code USRG for 20% off most passes.

LambdaConf 2017 will be taking place May 25th – 27th in Boulder, Colorado. Visit for more information.

Elm Europe will be taking place June 8th and 9th in Paris, France. Visit for more information and to register.

ZuriHac 2017 will be taking place in Zurch on the 9th-11th of June. For more information, and to register visit

Oslo Elm Day is a one-day conference about Elm taking place June 10th in Oslo, Norway. Visit for more information and to register.

Curry On Barcelona will be taking place June 19-20th. For more information, visit

O’Reilly Fluent Conference will be taking place June 19–22, 2017 in San Jose, California. Visit to find out more and to register, and use code USRG for 20% off.

EuroClojure will be taking place in Berlin, Germany on July 20th & 21st. Visit for more information and to keep updated.

BusConf will be taking place the 3rd-5th of August in Frankfurt, Germany. Registration is open, and more information can be found at

The Strange Loop CfP is open! It will be held in St. Louis, MO on September 28-30, 2017 at the Peabody Opera House. To submit your CfP, visit

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


Some of you have asked how you can support Functional Geekery, in that vein,
Functional Geekery now has a Patreon Page.

If that is one of the ways you would like to show your support, you can
find out more at

Topics [@7:49]

About Jay
What got Jay interested in Software
Continuation Based Web Server in Perl
What got Jay into Functional Programming
Paul Graham on Continuations in On Lisp
“Let’s change the language to make it easy to provide that property”
Garbage Collection
Revenge of the Son of The Lisp Machine
The 3 Stages of Understanding Functional Programming
The relation of The Unix Philosophy to Functional Programming
Working between the Managed part of your program with the unmanaged part of your program
Working between the Typed part of your program with the Un-Typed part of your program
#lang in Racket
Racket as a virtual machine
How Jay moved to being part of Racket management
Racket Web Server
Shriram Krishnamurthi
PLT group and Racket
Matthias Felleisen
What are continuations
“It’s the remainder of work to be done”
The Stack as a Continuation
“[Their stack trace] tells them where their data is going”
Stateless HTTP Protocol as a Continuation in the Action of your form
Asynchronous Callbacks in JavaScript as Continuations
Continuations as a value in Racket
Serialization of Continuations in Racket
Temporal Contracts
Temporal Contracts being similar to Session Types
Racket Remix
Racket Module system vs Units
“Go back a little bit to the drawing board and do new things”
“Functional Programming languages in general try to remove the special parts of the language”
Brackets and Braces in Racket
Jay’s RacketCon 2016 presentation
Racket as a full fledged programming language
Beautiful Racket by Matthew Butterick
Integrating Verified Programming with Dynamic Languages
The Halting Problem
Gödel Incompleteness Theorem
Verified Kernels of your software
Typed Racket
“Many different kinds of guarantees that can be provided”
New England Programming Languages and Systems Symposium
The Inside Racket Seminar

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