Mercurial > hg > ishara
view sequences/@iterdata/iterdata.m @ 2:7357e1dc2ad6
Simplified scheduler library with new schedule representation.
author | samer |
---|---|
date | Sat, 22 Dec 2012 16:17:51 +0000 |
parents | 672052bd81f8 |
children |
line wrap: on
line source
function x=iterdata(f,s0,varargin) % iterdata - Construct sequence by recursive application of arbitrary function % % iterdata :: (A->A), A, options {} -> seq A. if nargin==1 && isa(s0,'iterdata'), x=s0; elseif nargin==0 x=iterdata(0,@id); else x.s=s0; opts.datafn=@(t)t.s; opts.nextfn=@(t)nfn(f,t); opts.charfn=@(t)cfn(f,t); x=class(x,'iterdata',data(size(s0),prefs(opts,varargin{:}))); end end function x=nfn(f,x) s1=f(x.s); if isempty(s1), x=[]; else x.s=s1; end end function c=cfn(f,t) c=['iter(' tostring(f) ')']; end