Evaluating functions using tail recursion and parameter substitution. (2012). Uniciencia, 26(1-2), 99-112. https://www.revistas.una.ac.cr/index.php/uniciencia/article/view/3866