The big difference is that F# is a statically typed functional language, while Elixir is a dynamically typed functional language. Comparison of static vs dynamic types -> https://hackernoon.com/statically-typed-vs-dynamically-typed...
I personally opted for F# because of the domain modelling tools and the offloading of various caveats and edge cases onto the compiler's stack rather than the meatspace stack, but Elixir has many fans for a good reason no doubt, but I'll defer to someone with more experience working with it to weigh in.
The Elixir web world gets a lot more love than the F# one. F# always touts the advantage of living in the .NET world, but it means most things are built with C# in mind, not F#. There are F# frameworks, and they are nice, but the community is quite small. But the advantage is the .NET world has a vast amount of libraries for doing most things.
OTP and Elixir is a better story than F# equivalents. There are no lightweight isolated processes in .NET
Elixir also has macros ( a very sharp double edged sword ) which can make frameworks nice to use.
F# is stronger typing which is nice and often has the trait if it compiles, it works. Though the normal downsides of dynamic typing in Elixir are not so bad.
But the best thing is to try both and make up your own mind
Writing an F# wrapper on c# libraries is usually very easy. You can also call c# code directly and it doesn’t look too bad.
Computation expressions can fulfil the needs of macros in many cases in a controlled way.
I loved them both!
Elixir has a great 'getting started' site, which was really well put together, and similarly the 'F# for Fun and Profit' site was great too, so I feel like I had equally good resources to introduce me to them both.
I'd love to spend more time with both of them, but in general I'm more comfortable with static typing, so if I progress further with either, it'll be F#.
I only wish that Microsoft would start treating F# as a first-class citizen alongside C# :/