You don’t have to master Haskell or Clojure or Scheme to understand functional programming. And you don’t have to code in Haskell or Clojure or Scheme to start reaping the benefits of the functional paradigm.
In fact, if you’re currently coding in any kind of dynamic high-level language, or even just in some shell scripting dialect, then you’re almost certainly already doing functional programming.
This language-agnostic class explores many of the fundamental ideas and specific techniques of the functional paradigm, and demonstrates how to write clean, efficient, and maintainable functional code in any of the above languages.
Topics covered include:
- What is functional programming?
- Benefits, challenges, and limitations
- Thinking functionally (with an imperative brain)
- The myth of statelessness
- Subroutines and closures
- Declarative parameter lists
- Multiple dispatch
- Lexical subroutines
- Named and anonymous closures
- Code as data
- Inversion-of-control techniques
- Metaprogramming with higher-order functions
- Mapping techniques
- Reduction techniques
- Integrating imperative and functional code
- Concurrent functional programming
Half-day or 1-day seminar
Intermediate or advanced developers looking to take the next step up to more powerful, more efficient, and more maintainable programming techniques.