Algorithms For Functional Programming In Python