I do not mean to single any body out here, but both FindInstance and Exists have their own tags, and , respectively. This brings up the question of what circumstances are necessary for a function to have its own tag? I can think of two potential criteria:

  1. the function is likely to generate a lot of traffic, or
  2. it is difficult to place in a larger grouping where users can find it.

Are these criteria satisfactory, or do they need to be modified?

5 Answers 5


I found myself wondering the same thing when I saw a tag for Max on a post. I think we should generally avoid tagging questions with function names since the number of tags could quickly get out of hand.

In[9]:= Names["System`*"] // Length

Out[9]= 4131

It may be worth making some exceptions for so-called "super-functions" like Integrate.

  • I'd expect Integrate and NIntegrate to fall into the first category: a lot of traffic. Overall, are these criteria satisfactory?
    – rcollyer
    Commented Jan 29, 2012 at 4:41
  • @rcollyer I believe so yes.
    – Andy Ross
    Commented Jan 29, 2012 at 4:43
  • 1
    @rcollyer: I'm not sure I'd like Integrate[] having its own tag; that might be covered by a wider tag like, say, calculus-and-analysis (which should also cover Limit[], D[], Series[], Residue[]...) Commented Jan 29, 2012 at 5:08
  • @J.M. that's reasonable. But, do we draw the line at no functions may have their own tag, or is there some softening of that stance wherein certain functions may? And, what are the criteria for that? BTW, if you fall in the "no tag" camp, please add an answer.
    – rcollyer
    Commented Jan 29, 2012 at 5:12
  • @rcollyer: Well, Manipulate[] is the function that comes to mind that probably requires its own tag; I would think that most of the other functions of Mathematica can be (loosely) categorized by some criterion, and we can then use terms pertaining to those categories as tag names. There will very likely be overlaps among these groups, but we are allowed multiple tags on a question after all. Commented Jan 29, 2012 at 5:32
  • Another "super-function" would be NDSolve, which has a book-length documentation on it. But then we already have differential-equations and numerics, the intersection of which already covers it. I agree: avoid function names as tags as much as possible.
    – Szabolcs
    Commented Jan 29, 2012 at 16:59
  • @J.M. I'm not sure whether someone with a question on Integrate will think of calculus-and-analysis as the most obvious tag. The advantage of using function names as tags is that they are straightforward and won't lead to a plurality of alternative names for the same problem. Commented Feb 12, 2012 at 15:20
  • @Sjoerd: I'd presume they'd at least start typing "calculus" in the tags and find that there's a nice tag already. There's always synonymization if needed... Commented Feb 12, 2012 at 15:24
  • @J.M. Not too sure whether the category to use would be obvious in all cases. In what category would NIntegrate belong? Numerical functions or Calculus or...? Commented Feb 12, 2012 at 15:48
  • @Sjoerd: I'd say both. (Or at least that's how I think about it.) A question can have multiple tags after all... Commented Feb 12, 2012 at 16:01
  • @J.M.: Manipulate is just the prominent example of dynamic features, therefore a tag [dynamic] or [dynamic-manipulation] which covers Manipulate but also Dynamic, DynamicWrapper and DynamicModule would IMHO be a better fit.
    – celtschk
    Commented Feb 13, 2012 at 17:04

I think right now (beginning of beta) the aim should be to avoid functions-as-tags altogether. When I look at the suggestion of what functions we should include, many of them look like a functionality area are and not just a simple function (for example, Compile --- yes we must have , but that's not only for Compile[], but all compilation-related functionality such as CompilePrint or just talking about the MVM).

I might be wrong that it is possible to avoid functions-as-tags, so my proposal is:

Let's base this on examples -- if you think that a particular function should exist as a tag, please point to some existing question where it is needed.

As a matter of fact, I've noticed a couple of existing questions which I would find hard to tag.

Another point to make: I expect that the typical question will be "how to achieve this goal" rather than "how to use this function". For example, many of the typical uses of Cases are possible using some other functions (Select, Replace, etc.). What if the asker uses , but the best solution turns out to use another function? My points are:

  1. The asker might not know which is the "right" function to use for the problem, so s/he can't tag the question with something like anyway (unless the question is about the function itself).

  2. It should be avoided that a function-name tag is used when the question is really about achieving something, not the usage of a particular function.

  • I both agree and disagree. I agree that the asker in most cases won't know in advance which function tag to use. However, I view tagging as a two-step process: tag before the question has been answered, and then retag after that (this can be done by mods and other active users). After all, tagging is to help users find something, and ability to, for example, find all good examples using Cases seems quite valuable to me. As a rule, not all 5 tags are used, so there should be room to add a few after the fact. This should allow us to use the existing tagging system more effectively. Commented Jan 29, 2012 at 20:25
  • @Leonid I agree that it is useful to (re)categorize questions after they have been answered. I am not sure if this is a manageable workload though (I already feel a bit burnt out after a week and a half, though this might have other reasons ...). Who is going to do it? (Please don't take it the wrong way that I used your Cases example for an argument. In most cases I'm quite open to change, and not difficult to convince. Just trying to move the discussion by explaining my viewpoint.)
    – Szabolcs
    Commented Jan 29, 2012 at 20:57
  • Sure, no problem (your last sentence). Who will do it? Well, we'll do it, those who can when they can. This is a matter of reviewing questions, and organization. I have some thoughts on how to make this work, but they are too vague at the moment to discuss them. One possibility is to engage intermediate users, by announcing weekly bounty for those with many (should define that) useful (re)tagging requests, with the rep. source being the joint rep from expert users like us (e.g. this week is on me, next one on you etc). The bounty doesn't have to be much - something like 100 points should do. Commented Jan 29, 2012 at 21:38
  • In my first comment, I was more describing the general mechanism rather than saying when it will start working effectively. We should go from a big bang to a relatively steady state first IMO. My main point is that while usual tag search sucks, the function tags may allow reciprocal links which may make search more powerful and meaningful. Very often, we may anticipate which major functions may be used for a given problem, and this will make search useful also for more advanced users. There are other benefits as well. Commented Jan 29, 2012 at 21:41

I think this may be appropriate for functions which do some of the following:

  • integrate a lot of functionality not easily achieved by other means (e.g. Cases)
  • empower users with new ways of solving problems (Reap and Sow come to mind).
  • represent a whole separate area (e g. Compile)

I tend to think that this is appropriate for functions for which one or more of the following:

  • take many options or arguments
  • generate output where formatting issues come into play
  • exhibit complexity or undocumented functionality
  • I can agree with no. 1 and 3. No 2 sounds a bit arbitrary. Commented Feb 12, 2012 at 15:14
  • @Sjoerd my logic regarding point 2 was that people are often trying to tune a particular output to get what they want, and therefore questions about how to use TableForm for example, become an interrelated category of their own. TableForm does take options but even if it did not things like the result of various level of nested lists make it somewhat complex.
    – Mr.Wizard
    Commented Feb 13, 2012 at 0:37

My original thinking about this was similar to Andy's (i.e. avoid except for 'super functions'). Now that I have thought about it a bit longer I begin to see the advantages of tagging questions which focus on a certain function with the function name as tag.

Indeed, there are 4000+ function names, and having that many tags would be a pain. I don't think that's going to happen as most questions won't focus on a single function but on a certain problem.

Function-names-as-tags have several advantages:

  • Ease of tagging. No containing category name to come up with. No synonym problems.
  • Ease of finding. If I have a problem with Flatten, searching on Flatten won't help me because many questions and answers use Flatten in code segments without Flatten being the topic of those Q&A's. It's easier to find all questions tagged with Flatten

Perhaps we can address the namespace pollution by preceding all function name tags by 'function-' or so?

You must log in to answer this question.

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