Advent of Code 2021 - Day 1

Tail-recursive solution of Part 2:

defmodule AoC2021_Part2 do
  @spec count_increasing([number]) :: non_neg_integer
  def count_increasing(input) do
    do_count_increasing(input, 0)
  end

  defp do_count_increasing([a | [_, _, d | _] = tail], acc) do
    do_count_increasing(tail, acc + (if a < d, do: 1, else: 0))
  end

  defp do_count_increasing(_, acc), do: acc
end