Does Clojure support pattern matching? AFAIK, the only thing that is "functional" about Clojure is its immutable data structures (and closures, but even JS has those).
Well, 1930's functional programming. Those techniques developed into various type theories pretty quickly (at the time for foundational reasons, but also for comprehension/management/expressiveness reasons).
Or if you have a more strict reading, Lisp is implementation-driven FP in the 70s compared to theory-driven FP from the time.
I think it kind of does. FP is a moving target---more of a cultural identity than a technical definition. As it becomes more mathematically focused it will become less applicable to (some) Lisps. If this progression continues and dependently typed languages become increasingly practical we may someday call them FP-without-quotes and even displace things like Haskell and OCaml.
Hardly. I even begin my commentary noting that "FP is a moving target" and a social phenomenon more than a technical one. I personally avoid the term as possible in much the same way I avoid the term "data scientist". If you want me to do Data Science I'll get excited and ask you for statistical project details.
Which language? C++? Java? Both now have closures. Closures aren't the indicator that a programming language is functional; I need something more - though I admit that I'm mostly used to static functional languages, I guess ADTs are not so useful in a dynamic language.
As with any programming paradigm, its not really useful to think of "functional" as a binary feature of programming languages, but rather an approach for which programming languages have varying degrees of support.
It has a support for destructuring, but no true pattern matching. Given the lack of algebraic data types, there's the question on what pattern matching would be supposed to match on.
Yes, Lisp can do pattern matching, usually implemented via macros,
In Clojure you use the core.match library.