Basically treating functions as first class data. first class functions Quite easy in something like Lisp because what’s the difference between:
(lambda (x) (+ x 1))
'(lambda (x) (+ x 1))
yeah basically the same thing in Lisp
From common lisp the mapcar function helped illustrate this idea
> (mapcar #’square ’(3 8 -3 5 2 10))
(9 64 9 25 4 100)
Above MAPCAR is taking the function square as a variable and executing that function over the given list producing a new list.
Even though Common Lisp A Gentle Introduction to Symbolic Computation describes this as it’s own programming paradigm I’ve mostly associated this with functional programming… Sigh, that’s because it is I forgot that it was comparing recursion not Applicative Programming.