In[]:=
Clear[{s,z,p,c,g,h,r}]
In[]:=
z=0&;s=#+1&;p[i_]=Slot[i]&;
In[]:=
z[n_]:=0
In[]:=
s[n_]:=n+1
In[]:=
p[i_][x__]:=Function[Slot[i]][x]
In[]:=
c[g_,h___][x__]:=Apply[g,Through[{h}[x]]]
In[]:=
r[g_,h_][0,x___]:=g[x]r[g_,h_][n_,x___]:=h[r[g,h][n-1,x],n-1,x]
r[g_,h_]=If[#10,g[##2],h[#0[#1-1,##2],#1-1,##2]]&;
In[]:=
c[g_,h___][x__]:=Through[g[h][x]]
c[g_,h___][x__]:=Through[g[h][x]]
c[g_,h___][x__]:=Apply[g,Through[{h}[x]]]
In[]:=
Comap[{a,b,c},x]
Out[]=
{a[x],b[x],c[x]}
Comap[{a,b,c},x]
In[]:=
Through[g[h1,h2,h3][x]]
Out[]=
g[h1[x],h2[x],h3[x]]
In[]:=
Comap[g[h1,h2,h3],x]
Out[]=
g[h1[x],h2[x],h3[x]]
Comap[g,h]
Out[]=
Comap[{a,b,c},x,y]
Through[]
In[]:=
r[p[1],s][2,3]
Out[]=
5
In[]:=
Clear[c]
Array[
In[]:=
Array[r[z,r[s,r[s,r[s,p[2]]]]],30]
Out[]=
{TerminatedEvaluation[RecursionLimit],r[z,r[s,r[s,r[s,p[2]]]]][2],r[z,r[s,r[s,r[s,p[2]]]]][3],r[z,r[s,r[s,r[s,p[2]]]]][4],r[z,r[s,r[s,r[s,p[2]]]]][5],r[z,r[s,r[s,r[s,p[2]]]]][6],r[z,r[s,r[s,r[s,p[2]]]]][7],r[z,r[s,r[s,r[s,p[2]]]]][8],r[z,r[s,r[s,r[s,p[2]]]]][9],r[z,r[s,r[s,r[s,p[2]]]]][10],r[z,r[s,r[s,r[s,p[2]]]]][11],r[z,r[s,r[s,r[s,p[2]]]]][12],r[z,r[s,r[s,r[s,p[2]]]]][13],r[z,r[s,r[s,r[s,p[2]]]]][14],r[z,r[s,r[s,r[s,p[2]]]]][15],r[z,r[s,r[s,r[s,p[2]]]]][16],r[z,r[s,r[s,r[s,p[2]]]]][17],r[z,r[s,r[s,r[s,p[2]]]]][18],r[z,r[s,r[s,r[s,p[2]]]]][19],r[z,r[s,r[s,r[s,p[2]]]]][20],r[z,r[s,r[s,r[s,p[2]]]]][21],r[z,r[s,r[s,r[s,p[2]]]]][22],r[z,r[s,r[s,r[s,p[2]]]]][23],r[z,r[s,r[s,r[s,p[2]]]]][24],r[z,r[s,r[s,r[s,p[2]]]]][25],r[z,r[s,r[s,r[s,p[2]]]]][26],r[z,r[s,r[s,r[s,p[2]]]]][27],r[z,r[s,r[s,r[s,p[2]]]]][28],r[z,r[s,r[s,r[s,p[2]]]]][29],r[z,r[s,r[s,r[s,p[2]]]]][30]}
In[]:=
Array[r[z,r[s,c[s,s]]],20]
Out[]=
{1,3+1[2,0,1],TerminatedEvaluation[RecursionLimit],r[0&,r[#1+1&,c[#1+1&,#1+1&]]][4],r[0&,r[#1+1&,c[#1+1&,#1+1&]]][5],r[0&,r[#1+1&,c[#1+1&,#1+1&]]][6],r[0&,r[#1+1&,c[#1+1&,#1+1&]]][7],r[0&,r[#1+1&,c[#1+1&,#1+1&]]][8],r[0&,r[#1+1&,c[#1+1&,#1+1&]]][9],r[0&,r[#1+1&,c[#1+1&,#1+1&]]][10],r[0&,r[#1+1&,c[#1+1&,#1+1&]]][11],r[0&,r[#1+1&,c[#1+1&,#1+1&]]][12],r[0&,r[#1+1&,c[#1+1&,#1+1&]]][13],r[0&,r[#1+1&,c[#1+1&,#1+1&]]][14],r[0&,r[#1+1&,c[#1+1&,#1+1&]]][15],r[0&,r[#1+1&,c[#1+1&,#1+1&]]][16],r[0&,r[#1+1&,c[#1+1&,#1+1&]]][17],r[0&,r[#1+1&,c[#1+1&,#1+1&]]][18],r[0&,r[#1+1&,c[#1+1&,#1+1&]]][19],r[0&,r[#1+1&,c[#1+1&,#1+1&]]][20]}
In[]:=
ClearAll[{s,z,p,c,g,h,r}]
In[]:=
z[n___]:=0
In[]:=
s[n_,___]:=n+1
In[]:=
p[i_][x__]:=Function[Slot[i]][x]
In[]:=
c[g_,h___][x__]:=Apply[g,Through[{h}[x]]]
In[]:=
r[g_,h_][x___,0]:=g[x]r[g_,h_][x___,n_]:=h[r[g,h][x,n-1],x,n-1]
In[]:=
Array[r[z,r[s,c[s,s]]],20]
Out[]=
{1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400}
In[]:=
Array[r[z,r[s,r[s,r[s,p[2]]]]],30]
Out[]=
{1,3,7,13,21,31,43,57,73,91,111,133,157,183,211,241,273,307,343,381,421,463,507,553,601,651,703,757,813,871}