view general/funutils/doer.m @ 9:45aaf9b2d7b0

Moved high-order sequence/list functions to @cell class.
author samer
date Mon, 14 Jan 2013 15:49:04 +0000
parents e44f49929e56
children
line wrap: on
line source
function h=funseq(varargin)
% funseq - Constructs sequential application of several functions
%
% h=funseq(f,...,g)
%
% returns the function h such that h(...) = g(...) but
% all functions are evaluated in order.

	fns=varargin;
	h=@seq;

	function varargout=seq(varargin)
		for i=1:length(fns)-1
			feval(fns{i},varargin{:});
		end
		if nargout==0,
			feval(fns{end},varargin{:});
		else
			[varargout{1:nargout}]=feval(fns{end},varargin{:});
		end
	end
end