Essentials: Functional Programming's Y Combinator - Computerphile