Pure functional programming has a set of rules to follow No state Pure functions No side effects Higher order functions The function takes one or more functions as parameters The function returns another function as result