view general/funutils/tail_call.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
line wrap: on
line source
% tail_call - Simulate effect of tail call
%
% tail_call :: (A{1:N}->B{1:M}), A{1:N} -> thunk(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} } }
%  | void -> B{1:M}.
function ret=tail_call(fn,varargin), ret={fn,varargin}; end