Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Restructure an expression with nested AmbiguityList expressions into a single flat AmbiguityList
ResourceFunction["FlattenAmbiguityList"][expr] restructures expr as a single AmbiguityList. | |
ResourceFunction["FlattenAmbiguityList"][expr, n] limits to no more than n possibilities. | |
ResourceFunction["FlattenAmbiguityList"][expr, n, crit] limits to no more than n possibilities pi for which crit[pi] is True. |
AmbiguityList is often only wrapped around the ambiguous part of an expression:
| In[1]:= | |
| Out[1]= | |
By moving the arguments inside the listed functions, all possible values can be computed directly:
| In[2]:= | |
| Out[2]= | |
Interpreter can return nested AmbiguityList expressions that may be difficult to reason about:
| In[3]:= | |
| Out[3]= | |
Flatten the expression to see all possibilities in a single flat list:
| In[4]:= | |
| Out[4]= | |
Ambiguous expressions can produce a large number of possibilities:
| In[5]:= | |
| Out[5]= | |
| In[6]:= | |
| Out[6]= | |
Limit the number of distinct possibilities produced:
| In[7]:= | |
| Out[7]= | |
Also limit to possibilities that pass a selection function:
| In[8]:= | |
| Out[8]= | |
By default, only preexisting metadata is maintained during restructuring:
| In[9]:= | |
| Out[9]= | |
Add an entity type to descriptions for further clarity:
| In[10]:= | |
| Out[10]= | |
Show metadata alongside possibilities:
| In[11]:= | |
| Out[11]= | |
Find all interpretations for a food using an ambiguous unit of "cup":
| In[12]:= | |
| Out[12]= | |
Flatten the expression to see each interpretation:
| In[13]:= | |
| Out[13]= | |
Compare calorie amounts for different interpretations of the unit:
| In[14]:= | |
| Out[14]= | |
Unambiguous expressions are not restructured:
| In[15]:= | |
| Out[15]= | |
An already-flat AmbiguityList is not restructured:
| In[16]:= | |
| Out[16]= | |
Expressions containing AmbiguityList in deeper parts of an expression will be moved to the top level:
| In[17]:= | |
| Out[17]= | |
If ambiguity is present, a selection function that produces no matches returns an empty AmbiguityList:
| In[18]:= | |
| Out[18]= | |
When no ambiguity is present, the expression is left untouched:
| In[19]:= | |
| Out[19]= | |
Sometimes ambiguous expressions can produce a large number of possibilities, which can take excessive memory and computation time:
| In[20]:= | |
| Out[21]= | |
This work is licensed under a Creative Commons Attribution 4.0 International License