Mathematica Stack Exchange is a question and answer site for users of Mathematica. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

When we are in console mode or working with a notebook we can get brief help about a function just by shift-entering


I would like to have a list like the following

{Map, Function, List, Transpose, Outer, Sequence, Apply, Tuples, \
Distribute, Thread, Equal, Fold, Slot, Reverse, Plus, Times, Total, \
MapThread, Inner, ReplaceAll, Rule, Composition, Through, Nest, \
ToExpression, ToString, Row, Part, Range, ComposeList, Compose, \
SlotSequence, Flatten, FoldList, NestList, Hold, Release}

and get a list of strings containing the corresponding help(s).

? cannot be mapped to a list of course so i am trying to find another way.

? works with Wildcards like ?*Plot* so i suppose it accepts some kind of pattern matching.

Any ideas ?

share|improve this question
Information[#] & /@ {Map, Function} isn't quite what you're looking for... – cormullion Dec 10 '13 at 12:09
@cormullion this is nice but firstly Information corresponds to ?? and not ? and secondly (and more important to me) in the notebook I work, I cannot convert the cells to a more usable form so to gather them as a list. I viewed the notebook with a text editor and I find it very difficult efficiently extracting the useful information. – tchronis Dec 10 '13 at 12:15
strongly related Dynamic usage message – Kuba Dec 10 '13 at 13:50
up vote 4 down vote accepted

Is this what you are after?

#::usage & /@ {Map, Scan}
{Map[f,expr] or f/@expr applies f to each element on the first level in expr. 
Map[f,expr,levelspec] applies f to parts of expr specified by levelspec.,
Scan[f,expr] evaluates f applied to each element of expr in turn. 
Scan[f,expr,levelspec] applies f to parts of expr specified by levelspec. }
share|improve this answer
yes thank you very much! – tchronis Dec 10 '13 at 13:24

You can map ?. Just turn off its LongForm form -- like this:

Information[#, LongForm -> False] & /@ {Map, Function}



The OP has asked why

cl::usage = "blabla"; cl := {1, 2, 3}^2;
Information[#, LongForm -> False]& /@ {cl}

Information::ssym: {1,4,9} is not a symbol or a valid string pattern. >>

produces the error message shown. The message is pretty clear. Information has attribute HoldAll and wants a symbol or a string as its argument. But the message shows cl got evaluated before Information saw it. Here are two ways to avoid this problem.

Information[#, LongForm -> False]& /@ {Unevaluated @ cl};
Information[cl, LongForm -> False]

both of which produce


as does


which is equivalent to Information[cl, LongForm -> False].

share|improve this answer
Well spotted! Not mentioned in "Details and Options", but tucked away in "Options" anyway; it's always worth double-checking... :) – cormullion Dec 10 '13 at 14:37
Thanks @m_goldberg . – tchronis Jan 6 '14 at 17:12
One quick question: When the function is defined with no arguments (like cl::usage="blabla";cl:={1,2,3}^2) then I get an error. Do you know a way to overcome this? – tchronis Jan 6 '14 at 17:23

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.