Init

In[]:=
<<CombinatorEvolve`
In[]:=
PacletInstall["/Users/sw/Dropbox/Physics/CodeDevelopment/Paclets/CombinatorEvolve-0.0.3.paclet"]
PacletInstall
:A paclet named CombinatorEvolve with the same version number (​0.0.3​) is already installed. Use PacletUninstall to remove the existing version first, or call PacletInstall with ForceVersionInstall -> True.
Out[]=
$Failed
In[]:=
ParallelMachineEvaluate[PacletInstall["/Users/sw/Dropbox/Physics/CodeDevelopment/Paclets/CombinatorEvolve-0.0.3.paclet"]]
(kernel 1)
PacletInstall::readonly:The PacletManager application is running in read-only mode; paclets cannot be installed or uninstalled.
(kernel 62)
PacletInstall::readonly:The PacletManager application is running in read-only mode; paclets cannot be installed or uninstalled.
Out[]=
$Failed,PacletObject
Name: CombinatorEvolve
Version: 0.0.3
,PacletObject
Name: CombinatorEvolve
Version: 0.0.3
,PacletObject
Name: CombinatorEvolve
Version: 0.0.3
,$Failed
In[]:=
ParallelEvaluate[<<CombinatorEvolve`]
Out[]=
{Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null}

Work

e[x_][y_]x[x[y]]
In[]:=
Nest[e,e,5]
Out[]=
e[e[e[e[e[e]]]]]
In[]:=
CombinatorEvolveList[{e[x_][y_]x[x[y]]},e[e][e],10,{"Leftmost","Outermost",1}]
Out[]=
{e[e][e],e[e[e]],e[e[e]],e[e[e]],e[e[e]],e[e[e]],e[e[e]],e[e[e]],e[e[e]],e[e[e]],e[e[e]]}
In[]:=
CombinatorFixedPointList[{e[x_][y_]x[x[y]]},e[e][e][e][e],{"Leftmost","Outermost",1}]
Out[]=
{e[e][e][e][e],e[e[e]][e][e],e[e][e[e][e]][e],e[e[e[e][e]]][e],e[e[e][e]][e[e[e][e]][e]],e[e][e][e[e][e][e[e[e][e]][e]]],e[e[e]][e[e][e][e[e[e][e]][e]]],e[e][e[e][e[e][e][e[e[e][e]][e]]]],e[e[e[e][e[e][e][e[e[e][e]][e]]]]],e[e[e[e[e[e][e][e[e[e][e]][e]]]]]],e[e[e[e[e[e[e]][e[e[e][e]][e]]]]]],e[e[e[e[e[e][e[e][e[e[e][e]][e]]]]]]],e[e[e[e[e[e[e[e][e[e[e][e]][e]]]]]]]],e[e[e[e[e[e[e[e[e[e[e][e]][e]]]]]]]]],e[e[e[e[e[e[e[e[e[e][e][e[e][e][e]]]]]]]]]],e[e[e[e[e[e[e[e[e[e[e]][e[e][e][e]]]]]]]]]],e[e[e[e[e[e[e[e[e[e][e[e][e[e][e][e]]]]]]]]]]],e[e[e[e[e[e[e[e[e[e[e[e][e[e][e][e]]]]]]]]]]]],e[e[e[e[e[e[e[e[e[e[e[e[e[e][e][e]]]]]]]]]]]]],e[e[e[e[e[e[e[e[e[e[e[e[e[e[e]][e]]]]]]]]]]]]],e[e[e[e[e[e[e[e[e[e[e[e[e[e][e[e][e]]]]]]]]]]]]]],e[e[e[e[e[e[e[e[e[e[e[e[e[e[e[e][e]]]]]]]]]]]]]]],e[e[e[e[e[e[e[e[e[e[e[e[e[e[e[e[e]]]]]]]]]]]]]]]]}
In[]:=
Nest[#[e]&,e,4]
Out[]=
e[e][e][e][e]
In[]:=
Table[Length[CombinatorFixedPointList[{e[x_][y_]x[x[y]]},Nest[#[e]&,e,n],{"Leftmost","Outermost",1}]],{n,5}]
Out[]=
$Aborted
In[]:=
Table[Length[CombinatorFixedPointList[{e[x_][y_]x[x[y]]},Nest[#[e]&,e,n],{"Leftmost","Outermost",1}]],{n,4}]
Out[]=
{1,2,5,23}
In[]:=
CombinatorLeftmostOutermostLeafCounts[{e[x_][y_]:>x[x[y]]},e[e][e][e][e],10000]
Out[]=
{5,5,6,6,9,11,11,12,12,12,12,13,13,13,15,15,16,16,16,16,17,17,17}
In[]:=
Table[{Length[#],Last[#]}&@CombinatorLeftmostOutermostLeafCounts[{e[x_][y_]:>x[x[y]]},Nest[#[e]&,e,n],10^6],{n,4}]
Out[]=
{{1,2},{2,3},{5,5},{23,17}}
In[]:=
Table[{Length[#],Last[#]}&@CombinatorLeftmostOutermostLeafCounts[{e[x_][y_]:>x[x[y]]},Nest[#[e]&,e,n],10^6],{n,6}]
Out[]=
$Aborted
In[]:=
Table[{Length[#],Last[#]}&@CombinatorLeftmostOutermostLeafCounts[{e[x_][y_]:>x[x[y]]},Nest[#[e]&,e,n],10^6],{n,5}]
Out[]=
$Aborted
In[]:=
Table[Length[CombinatorFixedPointList[{e[x_][y_]x[x[y]]},Nest[#[e]&,e,n],{"Leftmost","Innermost",1}]],{n,4}]
Out[]=
{1,2,5,20}
In[]:=
Table[Length[CombinatorFixedPointList[{e[x_][y_]x[x[y]]},Nest[#[e]&,e,n],{"Leftmost","Innermost",1}]],{n,5}]
Out[]=
$Aborted
In[]:=
FixedPointList[#/.{e[x_][y_]x[x[y]]}&,Nest[#[e]&,e,3]]
Out[]=
{e[e][e][e],e[e[e]][e],e[e][e[e][e]],e[e[e[e][e]]],e[e[e[e[e]]]],e[e[e[e[e]]]]}
In[]:=
FixedPointList[#/.{e[x_][y_]x[x[y]]}&,Nest[#[e]&,e,4]]
Out[]=
{e[e][e][e][e],e[e[e]][e][e],e[e][e[e][e]][e],e[e[e[e][e]]][e],e[e[e][e]][e[e[e][e]][e]],e[e][e][e[e][e][e[e[e][e]][e]]],e[e[e]][e[e[e]][e[e][e][e[e][e][e]]]],e[e][e[e][e[e[e]][e[e][e][e[e][e][e]]]]],e[e[e[e][e[e[e]][e[e][e][e[e][e][e]]]]]],e[e[e[e[e[e[e]][e[e][e][e[e][e][e]]]]]]],e[e[e[e[e[e][e[e][e[e][e][e[e][e][e]]]]]]]],e[e[e[e[e[e[e[e][e[e][e][e[e][e][e]]]]]]]]],e[e[e[e[e[e[e[e[e[e][e][e[e][e][e]]]]]]]]]],e[e[e[e[e[e[e[e[e[e[e]][e[e[e]][e]]]]]]]]]],e[e[e[e[e[e[e[e[e[e][e[e][e[e[e]][e]]]]]]]]]]],e[e[e[e[e[e[e[e[e[e[e[e][e[e[e]][e]]]]]]]]]]]],e[e[e[e[e[e[e[e[e[e[e[e[e[e[e]][e]]]]]]]]]]]]],e[e[e[e[e[e[e[e[e[e[e[e[e[e][e[e][e]]]]]]]]]]]]]],e[e[e[e[e[e[e[e[e[e[e[e[e[e[e[e][e]]]]]]]]]]]]]]],e[e[e[e[e[e[e[e[e[e[e[e[e[e[e[e[e]]]]]]]]]]]]]]]],e[e[e[e[e[e[e[e[e[e[e[e[e[e[e[e[e]]]]]]]]]]]]]]]]}
In[]:=
CombinatorExpressionGraph/@%
Out[]=

,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,


All Combinators

4-element RHS

More on x[x[y]]

x[x[y[x]]]

x[y[x]]