Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Encode an SK combinator expression into a list of 0s and 1s
ResourceFunction["CombinatorEncode"][comb] encodes the combinator expression comb (composed of the symbols s and k) as a list of 0s and 1s. | |
ResourceFunction["CombinatorEncode"][comb, fmt] yields the encoding of comb in the format fmt. |
| 00 | |
| 01 | |
| 1 |
| CombinatorSymbols | Automatic | which combinator symbols should be used instead of s and k |
Encode a combinator expression into a unique list of 1s and 0s:
| In[1]:= |
|
| Out[1]= |
|
Return the result of the encoding in various formats:
| In[2]:= |
|
| Out[2]= |
|
Specify which combinator symbols to encode instead of s and k:
| In[3]:= |
|
| Out[3]= |
|
Encode the five combinators that appear in Schönfinkel’s original paper:
| In[4]:= |
|
| Out[4]= |
|
Define a function for visualizing encodings:
Visualize states of a multiway combinator evaluation graph:
| In[5]:= |
|
| Out[5]= |
|
Plot the contraction of the Ω term, which reduces to itself after three steps:
| In[6]:= |
|
| Out[8]= |
|
Plot the successive applications of the successor function s[b] starting with k[i] (0):
| In[9]:= |
|
| Out[10]= |
|
Unknown symbols in the expression cannot be encoded:
| In[11]:= |
|
| Out[11]= |
|
| In[12]:= |
|
| Out[12]= |
|
This work is licensed under a Creative Commons Attribution 4.0 International License