I wondered what functional languages are mainly used for? I've been reading about them and read about Haskell and others. Some seem to be just "academic" languages which makes little sense to me, so hoping to get a better idea of their uses in real world applications.
Functional programming languages are really suitable for Big Data because if you think about it, most of Big Data is about data processing, filtering, aggregating (a.k.a Data Flow).
Functional programming idioms such "Higher Order Functions", functions composition, partial functions, map/reduce, filtering, sequences abstraction (in Clojure) are a natural match to Big Data field.
- Functional programming languages make it easy to write "Domain Specific Language".
- Functional programming languages greatly simplify coding and architecting multithreaded and parallel systems (Erlang Actors, Elixir, Scala/Akka, Clojure/Pulsar).
- Functional programming languages are suitable to code "Natural Language Processing", "Information Retrieval" and "Machine learning" systems. This is also due the "Higher Order Functions".
The ability to create and return functions dynamically at runtime is the main reason why Lisp is used to create AI and machine learning systems.
Dean Wampler gave an interesting talk at the Lambda Jam conference on why Copious Data is the Killer App for Functional Programming.
One field that I don't think functional programming fits in is building GUIs. This is where OOP shines. Just take a look at Cocoa and Cocoa Touch; both are well crafted frameworks.
Personally I like creating web applications with a functional programming languages. My favorite stack right now is Clojure/Pedestal/ClojureScript.