Recently, I came across the following description:
"A functional program is a single expression, which is executed by evaluating the expression.
Anyone who has used a spreadsheet has experience of functional programming. In a spreadsheet, one specifies the value of each cell in terms of the values of other cells. The focus is on what is to be computed, not how it should be computed.
This focus on the high-level "what" rather than the low-level "how" is a distinguishing characteristic of functional programming languages."