Definition
"знает" способ определения значения для символа: с помощью Set
или SetDelayed
. Но как? Насколько я понимаю, после того, как значение для символа было назначено, для оценщика нет никакой разницы, как это было назначено: с помощью Set
или SetDelayed
. Это можно проиллюстрировать функцией OwnValues
, которая всегда возвращает определения с Head
RuleDelayed
. Как Definiton
получает эту информацию?
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}