Documentation Roulette

A new way to learn Mathematica… click on the button for a random system function’s documentation page…

Button["Random Documentation",
 Quiet@Module[{choice, systemFunctions, messages},
    systemFunctions = Names["System`*"];
    messages = 
     CurrentValue[$FrontEnd, {MessageOptions, "ErrorAction"}];
    CurrentValue[$FrontEnd, {MessageOptions, "ErrorAction"}] = {};
    NestWhile[
     NotebookOpen[
       "paclet:ref/" <> 
        RandomChoice[systemFunctions]] &, $Failed, # === $Failed &];
    CurrentValue[$FrontEnd, {MessageOptions, "ErrorAction"}] = 
     messages]
 ]

Or, as a convenient instructional palette:

CreateWindow@PaletteNotebook[
  {Button["Random Documentation",
    Quiet@Module[{choice, systemFunctions, messages},
      systemFunctions = Names["System`*"];
      messages = 
       CurrentValue[$FrontEnd, {MessageOptions, "ErrorAction"}];
      CurrentValue[$FrontEnd, {MessageOptions, "ErrorAction"}] = {};
      NestWhile[
       NotebookOpen[
         "paclet:ref/" <> 
          RandomChoice[
           systemFunctions]] &, $Failed, # === $Failed &];
      CurrentValue[$FrontEnd, {MessageOptions, "ErrorAction"}] = 
       messages],
    Appearance -> "Palette",
    BaseStyle -> {FontFamily -> "Helvetica", 11, Bold}
    ]},
  WindowTitle -> "Documentation Roulette!"
  ]
2 Likes