function [Y,s]=cmapaccum(fn,s,X)
% cmapaccum - Map a function over a cell array
%
% cmapaccum :: (A,S->B,S), S, {[Size]->A}) -> {[Size]->B}, S.

% preallocate to fix size
Y=cell(size(X));
for i=1:numel(X)
	[Y{i},s]=fn(X{i},s);
end
