
% valsBetween(X,Y,L,Result)
% -------------------------
% given a list, L, and a pair of values X,Y,
%   Result is the sublist of L whose elements
%   are strictly between X and Y
% e.g.
%   between(3, 7, [ 1, 5, 7, 8, 4, 3, 2, 6 ], R).
%      gives R = [ 5, 4, 6 ]
% as does
%   between(7, 3, [ 1, 5, 7, 8, 4, 3, 2, 6 ], R).
valsBetween(X,Y,L,R) :- X @> Y, valsBetween(Y,X,L,R).
valsBetween(_,_,[],[]).
valsBetween(X,Y,[H|T],[H|R]) :- H @< Y, H @> X, valsBetween(X,Y,T,R).
valsBetween(X,Y,[_|T],R) :- valsBetween(X,Y,T,R).
