What is the best pattern matching function's arguments or in function's body?

gameline
Sat, 11 Nov 2023 08:29:00 +0000
Questions / Help

Hi,
I was surprised I couldn’t find any argument on this on the net so here I am.

When you make recursive function that deal with list and want to pattern match argument against [] or [head|tail] you can:

function [], do: *something*
function [h|t], do: *something else*

which is what I would call the Elixir way. A more haskellish way might be:

function argument do
  case argument []
    [] -> something()
    [h|t] -> something_else()
  end
end

The first option allow you to handle different arities the same way but is there other good arguments on why you should use the first option instead of the second ?

16 posts - 7 participants