# Wolfram Function Repository

Instant-use add-on functions for the Wolfram Language

Function Repository Resource:

Show the evolution of a combinator expression to its fixed point based on defined rules and an evaluation scheme

Contributed by:
Wolfram Research

ResourceFunction["CombinatorFixedPointList"][ shows the evolution of the combinator expression | |

ResourceFunction["CombinatorFixedPointList"][ shows the evolution of the combinator expression | |

ResourceFunction["CombinatorFixedPointList"][ shows the evolution of | |

ResourceFunction["CombinatorFixedPointList"][ shows evolution |

The input *cmb* must be given as a combinator expression in nested bracket form.

If *scheme* is specified, direction ("Leftmost", "Rightmost"), depth order ("Outermost", "Innermost") and number of matches (integer number or Infinity) must be specified in order of their priority as sorting criteria.

CombinatorFixedPoint takes the following options:

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 |

Show steps of the fixed point evolution 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 show the fixed-point evolution of the combinator expression:

In[2]:= |

Out[2]= |

Calculate the leaf count of each expression generated during an evolution:

In[3]:= |

Out[3]= |

Show the steps of the fixed-point evolution of a combinator expression using the default single leftmost-outermost update with **S** and **K** combinator transformation rules:

In[4]:= |

In[5]:= |

Out[5]= |

One can show a similar fixed-point evolution using ReplaceAll in FixedPointList, which performs all non-overlapping updates in leftmost-outermost order:

In[6]:= |

Out[6]= |

If the option values for "MaxSize" or "MaxSteps" are surpassed, the returned evolution ends before reaching a fixed point:

In[7]:= |

Out[7]= |

In[8]:= |

Out[8]= |

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