A reddit thread brought up an apparently interesting question:
Tail recursive functions can trivially be converted into iterative functions. Other one
Here is an iterative algorithm:
def howmany(x,y) a = {} for n in (0..x+y) for m in (0..n) a[[m,n-m]] = if m==0 or n-m==0 then 1 else a[[m-1,n-m]] + a[[m,n-m-1]] end end end return a[[x,y]] end