I like functional programming. I like the elegance of recursion. I like Swift. I like using recursion in Swift until one day I encountered this:
The Swift team confirmed that Tail Call Optimization is not guaranteed. It means it is not safe to use recursion in Swift, because it is impossible to know whether your recursive function will explode your call stack unless you read the compiled code which is impractical in everyday coding.