function X=foldr(fn,e,args)
% foldr - Fold combinator from functional programming
%
% This function applies an associative operator to a list of arguments,
% starting from the right, eg
% elements, eg foldr(@plus,0,{1,2,3,4}) = (1+(2+(3+(4+0)))).
%
% foldr :: 
%    (Y,X->X)	~'associative binary operator',
%    Y         ~'initial element',
%    {[N]->Y} ~'list (cell array) of arguments (at least 2 elements)'
% -> Y.
X=e; for i=length(args):-1:1, X=fn(args{i},X); end
