Too Long; Didn't Read
In recursion a function calls itself without finishing its own execution. This creates a stack of unfinished function calls and due to memory constraints there can only be a certain limit of function calls allowed in a stack. A tail call is when a recursion call only happens at the end of the function in a return statement. In a trampolined recursion, we call a function that in turn returns a function ( not a function call) and this returned function again calls our recursion function.