f[g[h[x]]]
f@g@h@#&
f[g[x,y],y]
f[g[x][y]][y]
f[g[x][y]][y]
In[]:=
ResourceFunction["WolframModelPlot"][{{f[g[x][y]][y],f,g[x][y],y},{g[x][y],g,x,y}},VertexLabelsAutomatic]
Out[]=
In[]:=
WolframModelPlot[{{f[g[x][y]][y],f[g[x][y]],y},{g[x][y],g[x],y},{f[g[x][y]],f,g[x][y]},{g[x],g,x}},VertexLabelsAutomatic]
Out[]=
In[]:=
WolframModelPlot[Reverse/@{{f[g[x][y]][y],f[g[x][y]],y},{g[x][y],g[x],y},{f[g[x][y]],f,g[x][y]},{g[x],g,x}},VertexLabelsAutomatic]
Out[]=
In[]:=
WolframModelPlot[Reverse/@{{f[g[x][y]][y],f[g[x][y]],y},{g[x][y],g[x],y},{f[g[x][y]],f,g[x][y]},{g[x],g,x}},VertexLabelsPlaced[Automatic,Automatic,InputForm]]
Out[]=
In[]:=
WolframModelPlot[Reverse/@{{f[g[x][y]][y],f[g[x][y]],y},{g[x][y],g[x],y},{f[g[x][y]],f,g[x][y]},{g[x],g,x}},VertexStyleDirective[EdgeForm[Orange],White],VertexLabelsPlaced[Automatic,Center,If[Head[#]===Symbol,InputForm[#],""]&]]
Out[]=
In[]:=
WolframModelPlot[{{x,g,g[x]},{g[x],f,f[g[x]]}},VertexLabelsPlaced[Automatic,Automatic,InputForm]]
Out[]=
In[]:=
WolframModelPlot[{{x,g,g[x]},{g[x],f,f[g[x]]},{f[g[x]],p,p[f[g[x]]]}},VertexLabelsPlaced[Automatic,Automatic,InputForm]]
Out[]=
WolframModelPlot[{{x,g[x]},{g[x],f[g[x]]}},VertexLabelsPlaced[Automatic,Automatic,InputForm]]
In[]:=
ReverseApplied[f][a,b]
Out[]=
f[b,a]
f[g[x][y]][y]
Function[{x,y},f[g[x,y],y]]
In[]:=
Composition[f,g][x]
Out[]=
f[g[x]]
PlaceholderApplied[{{1,1}},{{1,2},{2}}][f[g[,],]][x,y]
In[]:=
ToSKCombinators[f[g[x][y]][y],{f,g,x,y}]
Out[]=
s[s[k[s]][s[k[s[k[s]]]][s[k[s[k[s[k[s]]]]]][s[k[s]][s[k[k]][s[k[s]][k]]]]]]][k[k[k[s[k][k]]]]]
In[]:=
Union[Level[ToSKCombinators[f[g[x][y]][y],{f,g,x,y}],{0,Infinity},HeadsTrue]]
Out[]=
{k,s,k[k],k[s],k[k[k[s[k][k]]]],k[k[s[k][k]]],k[s[k[s]]],k[s[k[s[k[s]]]]],k[s[k][k]],s[k],s[k[k]],s[k[s]],s[k[s[k[s]]]],s[k[s[k[s[k[s]]]]]],s[s[k[s]][s[k[s[k[s]]]][s[k[s[k[s[k[s]]]]]][s[k[s]][s[k[k]][s[k[s]][k]]]]]]],s[k][k],s[k[k]][s[k[s]][k]],s[k[s]][k],s[k[s]][s[k[k]][s[k[s]][k]]],s[k[s]][s[k[s[k[s]]]][s[k[s[k[s[k[s]]]]]][s[k[s]][s[k[k]][s[k[s]][k]]]]]],s[k[s[k[s]]]][s[k[s[k[s[k[s]]]]]][s[k[s]][s[k[k]][s[k[s]][k]]]]],s[k[s[k[s[k[s]]]]]][s[k[s]][s[k[k]][s[k[s]][k]]]],s[s[k[s]][s[k[s[k[s]]]][s[k[s[k[s[k[s]]]]]][s[k[s]][s[k[k]][s[k[s]][k]]]]]]][k[k[k[s[k][k]]]]]}
In[]:=
DeleteCases[Union[Level[ToSKCombinators[f[g[x][y]][y],{f,g,x,y}],{0,Infinity},HeadsTrue]],_Symbol]
Out[]=
{k[k],k[s],k[k[k[s[k][k]]]],k[k[s[k][k]]],k[s[k[s]]],k[s[k[s[k[s]]]]],k[s[k][k]],s[k],s[k[k]],s[k[s]],s[k[s[k[s]]]],s[k[s[k[s[k[s]]]]]],s[s[k[s]][s[k[s[k[s]]]][s[k[s[k[s[k[s]]]]]][s[k[s]][s[k[k]][s[k[s]][k]]]]]]],s[k][k],s[k[k]][s[k[s]][k]],s[k[s]][k],s[k[s]][s[k[k]][s[k[s]][k]]],s[k[s]][s[k[s[k[s]]]][s[k[s[k[s[k[s]]]]]][s[k[s]][s[k[k]][s[k[s]][k]]]]]],s[k[s[k[s]]]][s[k[s[k[s[k[s]]]]]][s[k[s]][s[k[k]][s[k[s]][k]]]]],s[k[s[k[s[k[s]]]]]][s[k[s]][s[k[k]][s[k[s]][k]]]],s[s[k[s]][s[k[s[k[s]]]][s[k[s[k[s[k[s]]]]]][s[k[s]][s[k[k]][s[k[s]][k]]]]]]][k[k[k[s[k][k]]]]]}
In[]:=
{#,Head[#],First[#]}&/@DeleteCases[Union[Level[ToSKCombinators[f[g[x][y]][y],{f,g,x,y}],{0,Infinity},HeadsTrue]],_Symbol]
Out[]=
{{k[k],k,k},{k[s],k,s},{k[k[k[s[k][k]]]],k,k[k[s[k][k]]]},{k[k[s[k][k]]],k,k[s[k][k]]},{k[s[k[s]]],k,s[k[s]]},{k[s[k[s[k[s]]]]],k,s[k[s[k[s]]]]},{k[s[k][k]],k,s[k][k]},{s[k],s,k},{s[k[k]],s,k[k]},{s[k[s]],s,k[s]},{s[k[s[k[s]]]],s,k[s[k[s]]]},{s[k[s[k[s[k[s]]]]]],s,k[s[k[s[k[s]]]]]},{s[s[k[s]][s[k[s[k[s]]]][s[k[s[k[s[k[s]]]]]][s[k[s]][s[k[k]][s[k[s]][k]]]]]]],s,s[k[s]][s[k[s[k[s]]]][s[k[s[k[s[k[s]]]]]][s[k[s]][s[k[k]][s[k[s]][k]]]]]]},{s[k][k],s[k],k},{s[k[k]][s[k[s]][k]],s[k[k]],s[k[s]][k]},{s[k[s]][k],s[k[s]],k},{s[k[s]][s[k[k]][s[k[s]][k]]],s[k[s]],s[k[k]][s[k[s]][k]]},{s[k[s]][s[k[s[k[s]]]][s[k[s[k[s[k[s]]]]]][s[k[s]][s[k[k]][s[k[s]][k]]]]]],s[k[s]],s[k[s[k[s]]]][s[k[s[k[s[k[s]]]]]][s[k[s]][s[k[k]][s[k[s]][k]]]]]},{s[k[s[k[s]]]][s[k[s[k[s[k[s]]]]]][s[k[s]][s[k[k]][s[k[s]][k]]]]],s[k[s[k[s]]]],s[k[s[k[s[k[s]]]]]][s[k[s]][s[k[k]][s[k[s]][k]]]]},{s[k[s[k[s[k[s]]]]]][s[k[s]][s[k[k]][s[k[s]][k]]]],s[k[s[k[s[k[s]]]]]],s[k[s]][s[k[k]][s[k[s]][k]]]},{s[s[k[s]][s[k[s[k[s]]]][s[k[s[k[s[k[s]]]]]][s[k[s]][s[k[k]][s[k[s]][k]]]]]]][k[k[k[s[k][k]]]]],s[s[k[s]][s[k[s[k[s]]]][s[k[s[k[s[k[s]]]]]][s[k[s]][s[k[k]][s[k[s]][k]]]]]]],k[k[k[s[k][k]]]]}}
What one needs to do here is hypergraph rules with non-pattern variables for g....