Das ist ein Einstieg in funktionale Programmierung - je nach Sichtweise die Hölle auf Erden oder aber eine schöne Alternative bzw. Ergänzung zur objektorientierten Programmierung. FP ist nicht neu. Das gab's schon in den 60er Jahren, in Sprachen wie LISP oder APL.
Die theoretischen Grundlagen reichen sogar noch weiter in die Vergangenheit zurück. Alonzo Church und sein Team haben in den 1930er Jahren den Lambda Kalkül entwickelt, der bis heute das theoretische Fundament für viele funktionale Programmiersprachen bildet.
Die ersten FP Sprachen waren rein funktional, was den Einstieg schwer machte. Neuere Sprachen unterstützen funktionale Ansätze, zwingen aber nicht zur FP.
Es gibt keinen wirklichen Konsens darüber was "rein funktional" eigentlich bedeutet. Der Begriff wird heute meist in Verbindung mit Sprachen wie Haskell gebraucht, die eine glasklare Trennung zwischen Funktionen machen, die immer die selben Eingaben für die selben Ausgaben berechnen, und solchen, die darüber hinaus zusätzliche Nebenwirkungen haben können, wie zum Beispiel das Lesen und Schreiben von Dateien oder das Abfragen einer Datenbank. Das ist eine relativ junge Errungenschaft aus den 90ern. Darunter fallen tatsächlich nur sehr wenige Programmiersprachen.
Aber ich verstehe schon was du meinst. Sprachen aus den Lisp-, Erlang-, und ML-Familien setzen funktionale Programmierkonzepte an erste Stelle. Das ist in Sprachen aus der C-Großfamilie (C/C++, Java, C# etc.) anders, die bevorzugen prozedurale und objekt-orientierte Konzepte und integrieren nach und nach einige funktionale Ideen.
Reine FP Sprachen wie Haskell oder Erlang (bzw. dessen Abkömmling Elixier, worin dieses Forum geschrieben ist) sind prozedural aufgewachsenen Wesen wie mir immer noch suspekt.
Das betrifft etwa 99.99% aller Programmierer:innen. Der erste Kontakt findet fast immer mit einer prozeduralen und/oder objekt-orientierten Sprache statt. Das ist in unserem Bildungssystem schon so angelegt. Und wenn man dann mal ein paar Jahre Erfahrung gesammelt hat, fällt es umso schwierigier die antrainierten Denkmuster beseite zu schieben, um eine anders geartete Programmiersprache zu erlernen. Ich habe mich auch schwer damit getan.