its not quite the same. you have to write quiet a bit of OCaml or Haskell to do the following.
[foo, [2, 3, bar], baz, 5] = [1,[2,3,4], 5]
If there's a match, the bindings "foo", "bar", "baz" will be bound to the values on the right hand side.
if not an exception will be thrown
(You are right, though, Erlang and Elixir have the same semantics, both being on the BEAM)