Quite the opposite :) My preference would be to rely on pattern matching (unification) in the function head:
def transform_data([_|[]]) do: []
I just wanted an example of using guard clauses. It does depend on the actual code though, there's probably a more elixiry solution.