Elixir is a general-purpose language that runs on BEAM, Erlang’s virtual machine. That’s because Elixir is based on Erlang and has the same abstractions. The difference is that Elixir provides you a more productive tooling and extensible design. 

In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that map values to other values, rather than a sequence of imperative statements which update the running state of the program.