Functional programming is taking the world by storm and with it comes the notion of programming with pure functions. We'll explore how this insight can help us build better software by improving how we reason about our programs. By learning about the mathematics of functions we'll build an intuition for thinking functionally, but we'll stay away from difficult mathematical notation or jargon. All code examples used in the talk will be in TypeScript, although we will stick to easy examples. No prerequisite knowledge of mathematics is required. The talk will introduce the concepts of Sets and Functions.