Erlang Array Maximal Adjacement Difference
-module(array_maximal_adjacent_difference).
-export([array_maximal_adjacent_difference/1]).

array_maximal_adjacent_difference(A) when length(A) < 3 ->
    0;
array_maximal_adjacent_difference(A) ->
    Triples = lists:zip3(A, tl(A), tl(tl(A))),
    lists:max([max(abs(Cur - Prev), abs(Cur - Next)) || {Prev, Cur, Next} <- Triples]).

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