Re:Functional Programming in Elixir with Witchcraft
by d3nj4l on Wednesday February 09, 2022 @10:16AM
(#30273565)
Actually, I think Elixir's pattern matching is slightly worse than OCaml simply because there's no in-built syntax for multiple matches pointing to the same clause. Ex:
(* In OCaml *)
type t = A | B | C | D
match A with
| A | B -> "something"
| C | D -> "else"
And in elixir: case :a do
a when a in [:a, :b] -> "something"
a when a in [:c, :d] -> "else"
end
And of course, you lose exhaustiveness from type information, but that's a preference.But, more to the point, I think what GP's referring to is partial function definitions via pattern matching on the arguments. That is intoxicating, and I wish OCaml had that.
How is Erlang's pattern matching different from ML-like pattern matching? I only know Elixir, which is more or less the same as ML.