when is it best to use a recursive function vs a for loop