annotate general/funutils/@function_handle/ctranspose.m @ 40:62304c930111

Reversed order of * function composition to match arrow * combinator.
author samer
date Tue, 29 Jan 2013 17:04:40 +0000
parents c388f1c70669
children
rev   line source
samer@39 1 % ctranspose - flip first two function arguments
samer@39 2 %
samer@39 3 % ctranspose :: (A,B,C{:}=>D{:}) -> (B,A,C{:}=>D{:}).
samer@38 4 function h=ctranspose(f,nin,nout)
samer@38 5 fns = { @q21, @q2n; @qn1, @qnn };
samer@38 6 if nargin<3, nout=nargout(f); end
samer@38 7 if nargin<2, nin=nargin(f); end
samer@38 8 h=fns{acount(nin,2)-1,acount(nout,1)};
samer@38 9 function y=q21(x,y), y=f(y,x); end
samer@38 10 function y=qn1(x,y,varargin), y=f(y,x,varargin{:}); end
samer@38 11 function varargout=q2n(x,y), [varargout{1:nargout}]=f(y,x); end
samer@38 12 function varargout=qnn(x,y,varargin), [varargout{1:nargout}]=f(y,x,varargin{:}); end
samer@38 13 end