A practical introduction to functional programming
maryrosecook.com