Please log in to watch this conference skillscast.
The topic of static types in the Clojure community is often contentious, but why is that? Is it simply a matter of taste? Poor experience with other statically typed languages? Or is there a deeper, underlying reason? If Clojure is such a powerful functional programming language, can you not have the choice?
And, what is a type system anyway?
During this talk, you will explore the Simply Typed Lambda Calculus, and it's application in a "Hindley-Milner" based type system with "full-program" type inference. How it can be mapped onto Clojure's syntax, and how it can be used to type-check a subset of Clojure code.
You will learn how expressive static type systems compare to clojure.spec, and how they can be used as a tool to complement Clojure's REPL driven workflow, not just to hinder the programmer. Finally, you will discover strategies for mixing typed and untyped code.
YOU MAY ALSO LIKE:
- Speculative Development: Using clojure.spec to write correct, beautifully documented APIs (SkillsCast recorded in December 2016)
- Kaizen To Karōshi - Burnout in Agile Teams and What You Can Do About It. (SkillsCast recorded in October 2019)
- Cool tricks you (probably) didn't know in Android Studio (SkillsCast recorded in October 2019)
A Dynamic, Statically Typed Contradiction
Andrew is a software developer at GoMore, working mostly in Clojure. He's interested in experimenting with, and implementing functional programming languages.