Fast intro to cool ideas in functional programming