Wolfram Function Repository
Instantuse addon functions for the Wolfram Language
Function Repository Resource:
Evolve a combinator expression to its fixed point based on defined rules and evaluation scheme
ResourceFunction["CombinatorFixedPoint"][cmb] evolves combinator expression cmb to its fixed point using S and K combinator transformation rules and single leftmost outermost updating order. 

ResourceFunction["CombinatorFixedPoint"][cmb,scheme] evolves cmb to its fixed point using S and K combinator transformation rules in matches found by scheme at each step. 

ResourceFunction["CombinatorFixedPoint"][rules, cmb,scheme] evolves cmb to its fixed point using rules in matches found by scheme at each step. 
MaxSteps  Infinity  maximum steps to take in evolving cmb 
"MaxSize"  Infinity  maximum leaf count allowed for evolution of cmb 
"SKGlyphs"  { CombinatorS , CombinatorK }  symbols used to specify default transformation rules 
Calculate the fixed point of a combinator expression using the default single leftmost outermost update with S and K combinator transformation rules:
In[1]:= 

Out[1]= 

Specify the update scheme and only use the K combinator transformation rule to evolve the combinator expression to its fixed point:
In[2]:= 

Out[2]= 

Calculate the fixed point of a combinator expression using the default single leftmost outermost update with S and K combinator transformation rules:
In[3]:= 

Out[3]= 

One can replicate this result with the use of ReplaceAll in FixedPoint:
In[4]:= 

Out[4]= 

The "MaxSize" and "MaxSteps" options can be useful for avoiding excessively long combinator evolutions, but will throw failures if their values are surpassed:
In[5]:= 

Out[5]= 

In[6]:= 

Out[6]= 

This work is licensed under a Creative Commons Attribution 4.0 International License