In functional programming, you get work done by evaluating expressions that return results.
Functional programming is notable for what is missing.
Despite these apparent limitations, functional programming is surprisingly powerful. The limitations make make certain programming techniques possible, prevent whole classes of errors, and can make programs easy to analyze. Programs are composed from self-contained procedures. The behavior of a purely functional procedure depends only on it arguments. There is no dependence on some surrounding environment of global variables or any history of past actions.