Beyond the For-Loop: Higher Order Functions and List Comprehensions in Python