4
$\begingroup$

I would like to have a simple way to get summary information about all the many commands built into Mathematica. How could I do this? Is there a site I may refer to?

$\endgroup$
  • $\begingroup$ According to the Wolfram Research site Mathematica currently has more than 5000 built-in functions (which is probably what you mean by "commands"). What would you do with a list of 5000 function names if you had one? In desperation you could evaluate Information["*"].This will give you information on the most readily available functions, but also lists symbols that are not functions. $\endgroup$ – m_goldberg Mar 16 '15 at 4:39
  • 5
    $\begingroup$ Listing of all symbols and functions as of V9 is here V10 listing has not been updated due to some problems with the current script running on V10. Alphabetical listing of all commands/symbols is here and with description is here $\endgroup$ – Nasser Mar 16 '15 at 4:48
  • $\begingroup$ Welcome to Mathematica.SE! I suggest the following: 1) As you receive help, try to give it too, by answering questions in your area of expertise. 2) Read the faq! 3) When you see good questions and answers, vote them up by clicking the gray triangles, because the credibility of the system is based on the reputation gained by users sharing their knowledge. Also, please remember to accept the answer, if any, that solves your problem, by clicking the checkmark sign! $\endgroup$ – user9660 Mar 16 '15 at 5:39
  • $\begingroup$ I would like to draw your attention to one more Post: Where to see all Mathematica units (duplicate) $\endgroup$ – user9660 Mar 16 '15 at 7:46
6
$\begingroup$

In 10.2 there is WolframLanguageData.

As a sample, to get a list (sorted by common-ness) of symbols which do not begin with $, are not *Box or *Data functions, are not solely options to other functions, and having got rid of some of the display-only things like AngleBracket:

dat = WolframLanguageData[
 All,
 {"CanonicalName", "Frequencies", "PlaintextUsage"}];

pruned = Cases[dat, Except[{_, _Missing, _}]];

firstWordInUsage[s_String] := 
 If[StringContainsQ[s, "]"], 
  ReadList[StringToStream@
   StringTake[s, StringPosition[s, "]"][[1, 1]] + 2 ;;], 
   Word][[1]],
  ReadList[StringToStream@s, Word][[2]]]

pruned2 = 
 Cases[pruned, 
  Except@{_, _, _String?({"displays"}~MemberQ~
     firstWordInUsage[#] &)}];

pruned3 = 
 Cases[pruned2, 
  Except@{_, _, _String?(ReadList[StringToStream[#], 
       Word][[2 ;; 4]] == {"is", "an", "option"} &)}];

pruned4 = 
 Select[pruned3, 
  Not@StringEndsQ[#[[1]], "Box"] && 
  Not@StringEndsQ[#[[1]], "Data"] &];

pruned5 = Select[pruned4, Not@StringStartsQ[#[[1]], "$"] &];

final = MapAt["All" /. # &, pruned5, {All, 2}][[All, 1 ;; 2]];

First /@ SortBy[final, -# &@*Last]

You may access the plaintext usage with EntityValue[#, "PlaintextUsage"]& applied to the appropriate Entity object.

$\endgroup$
  • $\begingroup$ Caveat: it misses UnitBox[] and SeriesData[]. $\endgroup$ – J. M.'s technical difficulties Aug 27 '15 at 7:45
  • $\begingroup$ True, thanks - I just grabbed some rough-and-ready heuristics. $\endgroup$ – Patrick Stevens Aug 27 '15 at 7:57
  • 1
    $\begingroup$ It's a bit weird that WolframLanguageData downloads the whole dataset every time I use it, instead of caching it like some *data functions used to do. $\endgroup$ – Szabolcs Aug 27 '15 at 8:51
4
$\begingroup$

If you want a list of all built-in commands, just type:

Names["System`*"]

If you want all the information of them:

Information/@Names["System`*"]
$\endgroup$
  • $\begingroup$ Not every System symbol has an information message. To limit it one may choose to use something like my answer below. +1 $\endgroup$ – Mr.Wizard Mar 16 '15 at 5:28
4
$\begingroup$

The official list of defined Symbols is here:

You can find the usage message for all System` Symbols that have one with:

msg = MakeExpression@# /. _[x_] :> MessageName[x, "usage"] &;

Cases[msg /@ Names["System`*"], _String]

Warning: it is slow.

$\endgroup$
1
$\begingroup$
Flatten @ Names[#] & /@ (StringJoin[#, "*"] & /@ CharacterRange["A", "Z"])
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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