Question on Definition and values of symbols
Definition "knows" the way how a value for a symbol was defined: using Set or SetDelayed . But how? As I understand, after a value for a symbol was assigned there is no any difference for the evaluator how it was assigned: by using Set or SetDelayed . It can be illustrated by the function OwnValues which always returns definitions with the Head RuleDelayed . How Definiton obtains this information? In[1]:= a=5;b:=5; Definition[a] Definition[b] OwnValues[a] Out[2]= a=5 Out[3]= b:=5 Out[4]= {HoldPattern[a]:>5} Alexey Popkov OwnValues[a] = {HoldPattern[a] -> 3}; OwnValues[a] gives {HoldPattern[a]