diff general/funutils/tail.m @ 4:e44f49929e56

Adding reorganised general toolbox, now in several subdirectories.
author samer
date Sat, 12 Jan 2013 19:21:22 +0000
parents
children fbc0540a9208
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/general/funutils/tail.m	Sat Jan 12 19:21:22 2013 +0000
@@ -0,0 +1,20 @@
+% tail1 - Call function with tail recursion
+% 
+% tail1 :: (A{1:N}->thunk(B{1:M}), A{1:N} -> B{1:M}.
+%
+% thunk(B{1:M}) ::= 
+%    exists C{1:L} . cell { C{1:L}->B{1:M}, cell { C{1:L} } }
+%  | cell { {0}, cell { B{1:L} } }
+%  | unit -> B{1:M}.
+
+function varargout=feval_tail1(fn,varargin)
+	ret=fn(varargin{:});
+	keyboard
+	if ~isnumeric(ret{1})
+		[varargout{1:nargout}]=feval(ret{1},ret{2}{:}); 
+	else
+		varargout=ret{2}(1:nargout); 
+	end
+end
+			
+