FOFP Fundamentals of functional programming

This document is for me to use during, and to distribute after, a lecture at Manchester's Xaverian College, where I'm very honoured to be able to help introduce some core concepts in functional programming, in my role as STEM Ambassador.

I'm writing it in draft mode in public, as a sort of experiment. Feedback gratefully accepted!

Part 1 - First-class functions, list processing and higher-order functions

Introduction

Trying things out

Some basic list processing

A different approach with map

Creating functions

Part 2 - More higher order functions

A look at filter

Transforming with fold (aka reduce)

Part 3 - Different syntaxes and languages

JavaScript and ES6

Fat arrows and more concise function definitions

Our examples in Clojure

Part 4 - Classic list processing

(To cover lists, head+tail / first+rest and recursion)