> The literature relies on somewhat foreboding statements like “functions as first-class objects,” and “eliminating side effects.
I personally find this view a little overbearing.
In "lay programmer's" terms, functions as first-class objects can often come down to being able to pass functions to other functions or function composition. Most of us learned about function composition in Algebra 2... So that's pretty straightforward even at its worst.
Eliminating side effects is equally straightforward in that all it means is that any variables outside the scope of a given function are not changed by the function.