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.

AdvantagesDisadvantages
shorter programsusually slower than imperative programs
easier to understandarguably less flexible
easier to design, verify, and maintain