Erlang is a general-purpose, garbage-collected programming language and runtime environment, with built-in support for concurrency, distribution and fault tolerance.
OCaml is a strict statically-typed functional programming language, focusing on expressiveness, correctness, and efficiency.
"While erlang is more expressive ocaml pattern matching is simpler which means a simpler language definition compiler etc. and you still can do what you need at the cost of writing more code"
from question "Why is OCaml's pattern matching weaker than Erlang's?"