Functional programming has been around since the mid of the last century and the basic concepts applied by mathematicians are much older.
Like the first chick crawled out of a dino egg , computing and instructions predate Von Neumann computers by ages. Actually bees and ants telling other bees and ants what to do and cells cooperate with each other.
Many people believe arithmetic operations are the base of computers while others understand that working with symbols is more the nature of computation.
So back to the modern age and the 21st century where Moore’s law is predicted to end in 2020 or so and the only way to get faster is parallelization. While Object Oriented Programming is closest as how humans think and perceive the universe, functional programming which is considering side effects is more suited to parallelization as it produces less dependencies.
it is as a friend of mine has pointed out not like programming in LISP.
Actually they only good way to work with it is to expand it and do only let it process data. LISP is probably rather a concept of thinking and programming than a programming language and probably incorporating this way into your any other language project is making it a great thing.
Just like an empty cup can take almost any liquid, nearly any language can be turned into LISP. There is even a project on github by Joel Martin called MAL which is not the French word for “bad” but rather stands for “Make A Lisp”.
He even talks hours about his MAL project on youtube and after getting frustrated on how to write a LISP interpreter I decided to use his guide and make my own one which is currently developed on github.