Well first, Elixir isn't purely functional. It's got side effects all over the place, it just doesn't have mutable variables.
Second... While I love static typing as much as the next guy, there's definitely value in immutable data in a dynamic language. You also get Dialyzer in Elixir/Erlang, which is an interesting alternative to the usual type systems you find in Haskell/Rust/etc. in that it focusses on finding places where there's provably a problem, rather than where it's not provably correct.
> there's definitely value in immutable data in a dynamic language.
Sure, but there's even more value in immutable data in a statically typed language, because of all the advantages that come with such a language (automated refactoring, better performances, tooling, etc...).
Re:Elixir 1.5 released
by OvermindDL1 on Tuesday July 25, 2017 @02:18PM
(#14850411)
I've been working with the BEAM (via Erlang) for over a decade, and with Elixir for almost 1.5 years, and I'd still give up, well, probably my current job if I could get a fully Hindley-Milner Typed Elixir...
I guess your job is mine now :)
Re:Elixir 1.5 released
by regulation_d on Tuesday July 25, 2017 @04:09PM
(#14851428)
I've always assumed that a statically typed Elixir would look a lot differently, especially, vis a vis, macros. Is that a fair assumption?
Yes, mis-typed when I typed purely functional. My intent was to lean closer towards mostly-functional languages than languages which _can_ be written in a functional style (a la JS or Ruby).
I should know better than to use the word "pure" on the internet, someone will always correct how inaccurate my usage is :)
Functional programming only starts to show its power with types and parametric polymorphism (higher kinds, etc...). Without type annotations, all you get is a watered down, crippled version of what a functional language can achieve.