11
$\begingroup$

Is it possible to assign custom attributes to symbols and check them later?

SetAttributes[a, b] 

says

Attributes::attnf: b is not a known attribute. 
$\endgroup$

1 Answer 1

14
$\begingroup$

No, I do not believe it is. As the documentation for your error message says:

The attributes available in each version of Mathematica are fixed and cannot be changed.

The system attributes are low level properties that fundamentally change the evaluation of symbols. I think it makes sense that these are not mixed with high-level user constructs, even though at times that would be quite convenient.

For an alternative remember that you can attach Options to a symbol, e.g.:

Options[a] = {"Attributes" -> {"b"}}; OptionValue[a, "Attributes"] 
{"b"} 

You could also use a single DownValues rule such as:

a["Attributes"] = {"b"}; a["Attributes"] 
{"b"} 
$\endgroup$
4
  • $\begingroup$ Thanks. But how to change individual option of a symbol? $\endgroup$ Commented Jan 19, 2013 at 10:14
  • $\begingroup$ Ah, I found SetOptions function. $\endgroup$ Commented Jan 19, 2013 at 10:15
  • $\begingroup$ @Suzan What do you mean? It is simple to replace the list of options with either method shown, e.g. SetOptions[a, "Attributes" -> {"c", "d"}]; or a["Attributes"] = {"c", "d"}; Are you asking for a way to individually append or remove these values as SetAttributes and ClearAttributes do? I could add that to my answer if you have trouble crafting it yourself. $\endgroup$ Commented Jan 19, 2013 at 10:17
  • $\begingroup$ @Suzan Thanks for the Accept, but please consider waiting a while first as someone else may have an answer you like better if you do not discourage them from reading the question. $\endgroup$ Commented Jan 19, 2013 at 10:18

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.