Thinking Functional With Clojure at DevoxxUK 2016

Many languages new and old provide a way to write code using functional programming concepts, however learning those concepts can take a little time especially when they are joined with OO concepts in the same language.

As Clojure has a simple syntax, many find it easier to focus on learning the concepts and design of functional programming. Then either taking those concepts back to other languages or continuing with Clojure.

At DevoxxUK 2016 I have the pleasure of running a workshop where I can help developers understand the core functional concepts, using Clojure (and Spacemacs) as simple tools.

Who is the workshop for?

Any developer starting to learning functional programing or interested to understand the concepts should join in. No prior experience of Clojure is required, although you should get even more out of the workshop if you have a little experience with the language.

As its DevoxxUK I’m assuming most people will have a Java background, but this is not a requirement either.

Workshop Requirements

The requirements for the “Thinking functional” workshop are quite small and setup is relatively simple. You will need:

See my simple Clojure development environment guide for details on setting up Java 8, Leiningen & LightTable.

The workshop topics

Puur rogramming Functionally by okeef creations

With plenty of opportunity to try code out for yourself, this workshop will discuss and provide examples of the following functional programming concepts.

  • Pure & impure Functions
  • Immutability & persistent data structures
  • Higher Order / First Class functions
  • Functional composition / chaining functions
  • Functors / map / reduce
  • Recursion / iteration
  • Sequence / List comprehension
  • Lazy Evaluation (Ratios)
  • Destructuring / pattern matching
  • Polymorphism
  • Tail recursion
  • Managine state change safely

In Summary

By the end of this workshop you should know much more about Functional Programming, wether you decide to continue with Clojure or take these concepts to another language.

Update: The workshop is now available online, so please take a look at the thinking functionally section.

There are plenty of follow-on resources for Clojure & functional programming included in the workshop and all code will be available in the Practicalli Github organization.

Thank you.

This work is licensed under a Creative Commons Attribution 4.0 ShareAlike License, including custom images & stylesheets. Permissions beyond the scope of this license may be available at @jr0cket
Creative Commons License