Mercurial > hg > ishara
annotate general/funutils/tail.m @ 12:fbc0540a9208
Moved some high-order functions from funutils to arrutils, updated docs and cleaned up funutils.
author | samer |
---|---|
date | Mon, 14 Jan 2013 22:21:11 +0000 |
parents | e44f49929e56 |
children | b1280319413e |
rev | line source |
---|---|
samer@4 | 1 % tail1 - Call function with tail recursion |
samer@4 | 2 % |
samer@4 | 3 % tail1 :: (A{1:N}->thunk(B{1:M}), A{1:N} -> B{1:M}. |
samer@4 | 4 % |
samer@4 | 5 % thunk(B{1:M}) ::= |
samer@4 | 6 % exists C{1:L} . cell { C{1:L}->B{1:M}, cell { C{1:L} } } |
samer@4 | 7 % | cell { {0}, cell { B{1:L} } } |
samer@12 | 8 % | void -> B{1:M}. |
samer@4 | 9 |
samer@4 | 10 function varargout=feval_tail1(fn,varargin) |
samer@4 | 11 ret=fn(varargin{:}); |
samer@4 | 12 keyboard |
samer@4 | 13 if ~isnumeric(ret{1}) |
samer@4 | 14 [varargout{1:nargout}]=feval(ret{1},ret{2}{:}); |
samer@4 | 15 else |
samer@4 | 16 varargout=ret{2}(1:nargout); |
samer@4 | 17 end |
samer@4 | 18 end |
samer@4 | 19 |
samer@4 | 20 |