I just saw an alternative construction for python's if-else statements like (0, 1)[ x > 5] and wanted to try it with recursion but for some reason it's not working. Just forget for a moment that it's unpythonic.
Here is an original code which I'm trying to replace with alternative:
def f(n):
    return 1 if n == 1 else n * f(n - 1)
Alternative, which give recursion problem:
def f(n):
    return (n * f(n - 1), 1)[n == 1]
What is the problem with alternative code?
 
     
    