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.