Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Inherit a symbol's definitions
ResourceFunction["InheritDefinitions"][source,target] make the target symbol inherit all definitions from the source symbol. |
Define a down value for a symbol:
In[1]:= | ![]() |
Create a new symbol and inherit all current and consequent definitions:
In[2]:= | ![]() |
Create more definitions:
In[3]:= | ![]() |
The second symbol has all definition of the first:
In[4]:= | ![]() |
Out[9]= | ![]() |
Inherit UpValues:
In[10]:= | ![]() |
Out[14]= | ![]() |
Use inherited definition in pattern matching:
In[15]:= | ![]() |
Out[21]= | ![]() |
Inherit OwnValues:
In[22]:= | ![]() |
Out[23]= | ![]() |
Inherit formatting:
In[24]:= | ![]() |
Out[25]= | ![]() |
Inherit Options and Default values:
In[26]:= | ![]() |
Out[27]= | ![]() |
Inherit NValues:
In[28]:= | ![]() |
Out[29]= | ![]() |
Inherit Messages:
In[30]:= | ![]() |
Only a single definition per type (DownValues, UpValues etc.) is added to the target symbol:
In[31]:= | ![]() |
Out[36]= | ![]() |
The inheriting symbols behaves as if it has the all the DownValues:
In[37]:= | ![]() |
Out[37]= | ![]() |
Recursive definitions can be inherited:
In[38]:= | ![]() |
Out[39]= | ![]() |
Self-dependencies work no matter how deep they are:
In[40]:= | ![]() |
Out[41]= | ![]() |
Positional Default values doesn't work:
In[42]:= | ![]() |
Out[43]= | ![]() |
In[44]:= | ![]() |
Out[45]= | ![]() |
Attributes are not inherited, therefore setting source attributes wouldn't propagate to a target:
In[46]:= | ![]() |
Out[47]= | ![]() |
In[48]:= | ![]() |
Out[49]= | ![]() |
Wolfram Language 13.0 (December 2021) or above
This work is licensed under a Creative Commons Attribution 4.0 International License