KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
One may set a Default value for the arguments of a function: Default[f] = 5; And then use: f[a_, b_.] := {a, b} f[1, 2] f[1] {1, 2} {1, 5} This creates the following Values: DefaultValues[f] DownValues[f] {HoldPattern[Default[f]] :> 5} {HoldPattern[f[a_, b_.]] :> {a, b}} From this one might think that the value 5 is not fixed in the definition of f , but addresses the DefaultValues assignment. However, if we change the DefaultValues , either directly or using: Default[f] = 9; DefaultValues[f] {HoldPattern[Default[f]] :> 9} and use f again: f[1] {1, 5} we see that the new value is not used. Therefore, my questions are: Why does the default value used by f[a_, b_.] := {a, b} not change with DefaultValues ? Where is the real default value ( 5 ) stored, since it does not appear in either DownValues or DefaultValues ?
Tags (comma-separated)
Save Edits
Cancel