Functional programs consist entirely of functions, where a function can be defined in terms of other functions (defined by the programmer, libraries, or language primitives). We focus on what is to be computed, not how it should be computed.
| Advantages | Disadvantages |
|---|---|
| shorter programs | usually slower than imperative programs |
| easier to understand | arguably less flexible |
| easier to design, verify, and maintain |