They are: (in no particular order)
- First class functions: I.e., the ability to pass functions to and from other functions, or functions as data.
- Homoiconicity: I.e., program code is represented as the language's fundamental data type. Not all functional languages have this, but it makes something I love much much more than the syntax possible. It's one of the most recognizable characteristics of languages in the LISP family. That is the creation of DSLs easily. You can modify almost everything about the language to suit your particular use case, emphasising particular aspects and deemphsising others to make it easier to understand.
- Immutable data structures: What goes in to a function won't be changed.
- Side-effect free functions: This means the environment won't be changed when you call a function.
Honestly, I'm still trying to understand how to write even simple programs in LISP and I think that is the reason that seeminly great languages like Clojure haven't yet caught on in the mainstream. They require you to relearn much of the fundamentals you know about programming and it's hard and takes time.