Why did you "scroll past" the Go solutions? Types, man, types. Elixir has no types. Ergo, I can't use it.
I thought I would miss static typing more than I do. Elixir's pattern matching is actually extremely powerful in its own right.
> Types, man, types. Elixir has no types.
Elixir (and BEAM more generally) has Dialyzer, which does static analysis including (but not limited to) type checking.
Dialyzer is easy to intentionally or accidentally mislead, so it's only as good as the quality of human-authored typespecs (which are sometimes absent from major mainstream Hex packages) and the inference is simultaneously more open-ended and unhelpfully precise than most people are accustomed to if they have prior experience with something like Rust or TypeScript. People also frequently struggle to accurately interpret its output.
I still find dialyzer to have non-zero value, but it's not uncontroversial and it's not usefully integrated with the vanilla language tooling. Mix/elixirc is not generally going to throw you a bone if you violated a syntax-correct type spec. It's an opt-in secondary tool and that diminishes its utility a tad.
Also the language is strongly typed and has a compiler which they’re adding more compile-time type checks to.
> Elixir has no types.
Elixir is strongly typed. I think you mean it is not statically typed.
Making this point in typed vs untyped debates about Elixir/Erlang specifically has never once lead to either an educational moment or a change of opinion on either side. You know exactly what they meant by that, and you're using a different definition than they are to try to pull a pedantic gotcha. It's snide and unproductive.