Elixir Array Maximal Adjacement Difference
defmodule ArrayMaximalAdjacentDifference do
  def array_maximal_adjacent_difference(a) when length(a) < 3, do: 0

  def array_maximal_adjacent_difference(a) do
    len = length(a)

    1..(len - 2)
    |> Enum.map(fn i ->
      prev = Enum.at(a, i - 1)
      cur = Enum.at(a, i)
      nxt = Enum.at(a, i + 1)
      max(abs(cur - prev), abs(cur - nxt))
    end)
    |> Enum.max()
  end
end

This checks the gap between each pair of neighbors and returns the largest difference.