Functional Thinking

Video Description

Learning the syntax of a new language is easy, but learning to think under a different paradigm is difficult. This video from renowned software architect Neal Ford helps you transition from a Java-writing imperative programmer to a functional programmer, using Java, Clojure and Scala as examples.

Rather than focus on specific language features, Functional Thinking looks at a variety of common practices in OOP languages and then shows you how to solve the same problems using a functional language. For instance, you know how to achieve code-reuse in Java via mechanisms such as inheritance and polymorphism. Code reuse is also possible in functional languages, using high-order functions, composition, and multi-methods.

Ford encourages you to value results over steps, so you can begin to think like a functional programmer. Expect your mind to be bent, but you’ll finish with a much better understanding of both the syntax and semantics of functional languages. This video is ideal for any experienced programmer.

Topics include:

  • Shifting Paradigms: Filter, map, reduce
  • Ceding control: Currying and partial application; recursion
  • Evolution: Memoization; closures
  • Nailgun-driven development: Concurrency, Function composition, coupling vs. composition, functional data structures, monads
  • Bendability: Dispatch, meta-programming, DSLs, macros
  • Why you should care

Table of Contents

  1. Introduction 00:35:19
  2. Gradually Getting Started 00:41:21
  3. Functions 00:27:50
  4. Laziness 00:33:23
  5. Coupling vs Composition 00:24:13
  6. Functional Data Structures 00:20:45
  7. Rethinking Dispatch 00:20:12
  8. Summary 00:23:57

Product Information

  • Title: Functional Thinking
  • Author(s): Neal Ford
  • Release date: April 2013
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9781449368630