Learning Functional Programming Without Growing a Neckbeard