O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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