UpValues
UpValues[f]
gives a list of transformation rules corresponding to all upvalues (values for g[…,f[…],…]) defined for the symbol f.
UpValues["symbol"]
gives a list of transformation rules corresponding to all upvalues defined for the symbol named "symbol" if it exists.
Details and Options
- UpValues[f] also gives rules corresponding to g[…,f,…].
- When evaluating an expression, matching upvalues are applied before matching downvalues. »
- If a function has attribute HoldAllComplete, no upvalues are applied prior to entering the body of the function. »
- UpValues are typically defined using UpSet, UpSetDelayed, TagSet or TagSetDelayed.
- You can specify the upvalues for f by making an assignment of the form UpValues[f]=list.
- The list returned by UpValues has elements of the form HoldPattern[lhs]:>rhs.
Examples
open allclose allBasic Examples (1)
Define an upvalue for a symbol g using TagSetDelayed:
Define an upvalue using UpSetDelayed:
Scope (3)
Applications (2)
Properties & Relations (7)
Values can be defined by immediate or delayed assignments:
HoldPattern is used to protect the rules from their own definitions:
UpValues["sym"] will issue a message if the specified symbol does not exist:
If the symbol exists but has no definitions, an empty list is returned:
Definition and Information display upvalues but do not return them as values:
UpValues returns a value that can be used in a program:
Evaluation of an expression involves applying matching upvalues:
Matching upvalues are used before matching downvalues in evaluation:
The upvalue for g is used prior to the downvalue for f:
Compare with a manual application of the upvalue and downvalue:
Define an upvalue for g that applies for all heads:
Even if a function has attribute HoldAll, the upvalue will be applied during evaluation:
If a function has attribute HoldAllComplete, the upvalue will not be applied:
Text
Wolfram Research (1991), UpValues, Wolfram Language function, https://reference.wolfram.com/language/ref/UpValues.html (updated 1996).
CMS
Wolfram Language. 1991. "UpValues." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 1996. https://reference.wolfram.com/language/ref/UpValues.html.
APA
Wolfram Language. (1991). UpValues. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/UpValues.html