Currently there are two tags that cover roughly the same territory: and . The question is which should be used? From a user perspective, I think definitions is better, but I'd like the community's input.


I vote for definitions as well for the same reasons as Szabolcs. However, I wonder how useful either tag is. I'm new to this but based on other posts I've read tags are supposed to make it easier to find a question.

When might a user be interested in all questions tagged ? I'm sure I'm missing something but this doesn't sound like a useful search criterion to me.

Edit: Here are some possible suggestions for the questions currently tagged with .

Can we use letter with a subscript as a variable in Mathematica? .

SetAttributes[f,Flat]: Why the order dependence? I don't think any others are necessary

How to check for Mathematica’s definition of XY? This question is asking what the underlying algorithm is doing. I'm not in love with but I think we need something more specific than unless this is the only way we use it.

Saving Mathematica kernel state? possibly need to rethink that one?

Clearing a specific definition

The various *values are things lots of users have questions about. I think OwnValues, DownValues, SubValues, and UpValues all deserve their own tag (or perhaps a tag that refers to all of them in a clear way).

  • Also, how does one enter a tag in a question/answer so that it appears as a tag?
    – Andy Ross
    Jan 31 '12 at 0:28
  • type [tag:something] to get something.
    – rcollyer
    Jan 31 '12 at 0:39
  • @rcollyer thanks, it was the "tag:" bit I was missing.
    – Andy Ross
    Jan 31 '12 at 1:02
  • I can see your point about usefulness, but do you have any alternative suggestions?
    – rcollyer
    Jan 31 '12 at 4:42
  • Does everything need a tag? Looking at the questions currently tagged definitions I don't really see a common thread.
    – Andy Ross
    Jan 31 '12 at 4:52
  • Yes, everything needs a tag. But, you're right the current questions tagged definitions, is a bit schizophrenic. assignment is a bit more sane as they literally have to do with assigning values and definitions to things and the effects of such assignment. (Definitions needs some pruning.)
    – rcollyer
    Jan 31 '12 at 4:56
  • 1
    Everything needs a tag in the sense that every questions needs to have at least one tag. Actually I agree with Andy that a definitions tag not that useful: I wouldn't search for it either unless I remember an old question being tagged with this specific tag for some reason.
    – Szabolcs
    Jan 31 '12 at 8:57
  • In the main, your argument is persuasive. But, let me play Devil's advocate here, obviously this question would be tagged upvalues, but what about the other aspects of the question? Is there a general umbrella under which to put this question? What about the other questions in assignment?
    – rcollyer
    Jan 31 '12 at 13:37
  • My feeling is that we either tag things with the various *Values or stick with one tag that is synonymous with all of them. If the group likes assignment for this purpose I think its fine so long as we consistently use the the tag in that way. I'm just afraid that we will label too many things with such a general tag, voiding its usefullness.
    – Andy Ross
    Jan 31 '12 at 15:24
  • 1
    That summarizes nicely my thinking on this. At some point (it may be now), we may find we need to break assignment out into separate tags. But, in the meantime, consistency is what I'm trying to achieve. (It may be an uphill battle, though.)
    – rcollyer
    Jan 31 '12 at 16:25
  • How about implementation-details, if it will fit, instead of implementation, or even internal-algorithms?
    – rcollyer
    Jan 31 '12 at 16:27
  • I think any of the above is fine so long as we are consistent in how we use them.
    – Andy Ross
    Jan 31 '12 at 16:31
  • Lastly, saving -> persistance? Also, to encourage consistent use I'm adding (slowly) info to the tag wikis.
    – rcollyer
    Jan 31 '12 at 16:49
  • I'm really not sure about that one. It sort of fits into questions about the kernel-state. Sometimes we wish we could save the state of the kernel, other times we might have gotten the kernel into a state that produces strange errors and have questions about that.
    – Andy Ross
    Jan 31 '12 at 17:09
  • Hmm, will have to think on it.
    – rcollyer
    Jan 31 '12 at 17:13

I vote for assignment. In a mostly immutable system like Mathematica, operations that change the global state are very important. The word "assignment" reflects the process of changing state much better than "definitions". Besides, "definitions" is really unclear for non-experts: do we mean values for symbols, or do we mean something else. Even for experts, this word does not have a single well-defined meaning. It may be that we'll still need something like this, but IMO assignment we need more, and we can also do something along the lines proposed by @Andy - use several more focused tags.


I vote for . I think I might have said this before on chat, but I think of as the act of setting a value to a name, and as the result you access later.

So there might be room for both, but works better for me and is less ambiguous. I am not sure the distinction Szabolcs makes is one that will be made by less experienced users and people who know other programming languages. We don't want to make more retagging work for ourselves.

I don't favor tags for UpValues, DownValues etc separately. These will be visible to a search anyway, and unlikely to be followed as separate tags.


I vote for :

When I hear 'assignment', I think of variable assignment, i.e. only OwnValues.

When I hear 'definition', I would also include DownValues. So 'definition' is more general than 'assignment'.

I don't know if others use the terms in the same way or not though ...

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .