Mercurial > hg > ishara
view general/funutils/@function_handle/and.m @ 39:c388f1c70669
Updated documentation and fixed some bugs in function algebra
author | samer |
---|---|
date | Tue, 29 Jan 2013 17:02:00 +0000 |
parents | 9d24b616bb06 |
children | ae596261e75f |
line wrap: on
line source
% and - sequential call function combinator % % and :: % (A{:} => B{:}), % (A{:} => C{:}) % -> (A{:} => C{:}). % % and :: % (A{:} => B{:}), % (A{:} => C{:}), % N:natural, % M:natural % -> (A{1:N} => C{1:M}). % % f&g == and(f,g) is a function which first calls f with given arguments, % discarding return values, then calls g with arguments returning result. function h=and(f,g,nin,nout) if nargin<4, nout=nargout(g); end if nargin<3, nin=nargin(g); end fns = { @q11, @q1n; @qn1, @qnn }; h=fns{acount(nin,1),acount(nout,1)}; function y=q11(x), f(x); y=g(x); end function y=qn1(varargin), f(varargin{:}); y=g(varargin{:}); end function varargout=q1n(x), f(x); [varargout{1:nargout}]=g(x); end function varargout=qnn(varargin), f(varargin{:}); [varargout{1:nargout}]=g(varargin{:}); end end