This question already has an answer here:

In another question here, I saw this

poincareMetric[u_?VectorQ, v_?VectorQ] := ...

Whilst I am familiar with the syntax label_Type, e.g. x_Real, I had not seen this form, but when I tried to search the MMA documentation I found that searching for _? returned no results and neither _ or ? on their own suggested to me a clear meaning for _? - especially since I would have written u_List for u_?VectorQ


1/ What does _? actually mean, and

2/ What is this function definition doing that would not be done by e.g. u_List?

but most importantly,

3/ How does one search for help on such terse syntactic constructions effectively? (So as not to ask almost trivial questions here)


marked as duplicate by Szabolcs, C. E., user31159, Feyre, Community Oct 29 '16 at 11:58

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • $\begingroup$ Almost all of these can be found by a documentation search. Your only mistake is assuming that _? is a single unit. It's _ and ? separately. You can search for both. $\endgroup$ – Szabolcs Oct 29 '16 at 8:59
  • 4
    $\begingroup$ Otherwise look at this post: mathematica.stackexchange.com/questions/18393/… $\endgroup$ – Szabolcs Oct 29 '16 at 8:59
  • $\begingroup$ Also see my comments on VectorQ here. $\endgroup$ – Szabolcs Oct 29 '16 at 9:02
  • $\begingroup$ Whilst searching for "_" produced only 1 result, searching for "?" produced 1055 hits. Searching for "_ ?" returned none. When you say I could "search for both", what could I enter in the search box (one search) or how could I combined multiple searches? (process) to identify relevant entries? Also, following links I arrive at controlling order of evaluation "define the function f to only evaluate if it receives a numeric value by using NumericQ and pattern testing. Append the pattern ?NumericQ to the argument of the function f"... TBC $\endgroup$ – Julian Moore Oct 29 '16 at 9:21
  • 1
    $\begingroup$ Searching for ? produces precisely three results. It has two uses in Mathematica syntax and one in regular expressions. Go to Help -> Wolfram Documentation, type ? and hit Enter. Use the builtin documentation, not Google or the Wolfram website. $\endgroup$ – Szabolcs Oct 29 '16 at 9:22

Browse other questions tagged or ask your own question.