Golf my iteration function
Ruby, 94 96 bytes
Using loops to do concatenations that followed such a simple pattern felt cumbersome, so I utilized the creative use of join
instead, further golfed by the fact that array*str
is equivalent to array.join(str)
+2 bytes to fix a typo I made that just so happened to return the same result on the test example by chance.
I=->k{eval"->f#{[*0..k]*'{->f'}{f#{k}.times{f1=f0[f1]};f1#{"[f#{[*2..k]*'][f'}]"if k>1}"+?}*-~k}
Try it online!
Ruby, 87 bytes
I=->k{eval ("->f%d{"*-~k+"f%d.times{f1=f0[f1]};f1"+"[f%d]"*~-k+?}*-~k)%[*0..k,k,*2..k]}
Try it online!