24
$\begingroup$

Some of the built-in Wolfram Language symbols are marked as [[EXPERIMENTAL]] in the documentation. For example Echo documentation

How can I get a list of all the symbols marked as [[EXPERIMENTAL]]?

(This question is inspired by this chat message posted by Mike Honeychurch.)

$\endgroup$
  • 1
    $\begingroup$ Maybe someone from WRI can comment on why this change seems to have occurred. In the past experimental stuff had its own context (and the context/add-on still exists) $\endgroup$ – Mike Honeychurch Nov 21 '15 at 22:19
  • 1
    $\begingroup$ Perhaps it's worth mentioning that there are symbols that were experimental but were later removed. For example, ToTitleCase is still available in the online docs, but not in Mathematica 10.3.0.0 as it was deemed too buggy in that state of development. I have no idea how to scan through the online docs for [[Experimental]] symbols. $\endgroup$ – István Zachar Nov 25 '15 at 12:11
  • $\begingroup$ @IstvánZachar As ToTitleCase is also no longer part of the ReferencePages\Symbols folder one probably would have to crawl through the online documentation searching for reference.wolfram.com/2013/images/experimental.png. (The image search of Google doesn't find it.) $\endgroup$ – Karsten 7. Dec 3 '15 at 14:05
30
$\begingroup$

Edit: This solution no longer works due to changes in the Entity framework.
The "UnderDevelopment" EntityClass no longer exists. It's not part of EntityClassList["WolframLanguageSymbol"] or WolframLanguageData["Classes"] anymore.


The symbols that are market [[EXPERIMENTAL]] in the documentation are in their own entity class of the "WolframLanguageSymbol" entity type, which is named "UnderDevelopment".

EntityClass["WolframLanguageSymbol", "UnderDevelopment"]

UnderDevelopmentEntityClass

Here is a list of all the 25 symbols currently (version 10.3) in EntityList[EntityClass["WolframLanguageSymbol", "UnderDevelopment"]] as a list of links to their online documentation

Hyperlink @@@ 
  EntityValue[
   EntityClass["WolframLanguageSymbol", 
    "UnderDevelopment"], {"CanonicalName", "URL"}] // Column

Autocomplete
AutocompletionFunction
CachePersistence
ContentObject
DeleteSearchIndex
DimensionReduce
DimensionReducerFunction
DimensionReduction
DistanceMatrix
Echo
EchoFunction
FindFormula
FoldPair
FoldPairList
LocalObject
SearchIndexObject
SearchIndices
Snippet
TextCases
TextPosition
TextSearch
TextSearchReport
TextStructure
UpdateSearchIndex
WordTranslation

links to their offline documentation

Multicolumn[
 Hyperlink[#, "paclet:ref/" <> #, Appearance -> "DialogBox"] & /@ 
  EntityValue[
   EntityClass["WolframLanguageSymbol", "UnderDevelopment"], 
   "CanonicalName"]]

OfflineExperimentalLinks

and their "TypesetUsage" for a quick overview.

Column[
 EntityValue[EntityClass["WolframLanguageSymbol", "UnderDevelopment"], "TypesetUsage"],
 Frame -> All, Background -> {{GrayLevel[0.95], LightBlue}}, Spacings -> 1]

TypesetUsage

$\endgroup$
  • 2
    $\begingroup$ Reported EntityValue[Entity["WolframLanguageSymbol", "EchoFunction"], EntityProperty["WolframLanguageSymbol", "TypesetUsage"]] returning Missing["NotAvailable"] as a bug. $\endgroup$ – Karsten 7. Nov 21 '15 at 8:42
11
$\begingroup$

List available as EntityList[EntityClass["WolframLanguageSymbol", "Experimental"]]

$\endgroup$
8
$\begingroup$

In Version 11, the [[EXPERIMENTAL]] tag appears to be a Graphics object. So we can simply look for this object in all the reference page. The downside to this is if the design of this tag ever changes, this solution will need to be updated.

(* location of reference pages *)
dir = DirectoryName[FindFile["ReferencePages/Symbols/Integrate.nb"]];

(* position of all GraphicsBox in an experimental ref page *)
Position[Import[dir <> "FeatureExtract.nb"], GraphicsBox[{__}, __]]
{{1, 2, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1}}
(* extract the experimental tag *)
exptag = Extract[Import[dir <> "FeatureExtract.nb"], {1, 2, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1}];

(* look for this tag everywhere else *)
syms = Monitor[
 Reap[
  Do[
   file = dir <> name <> ".nb";
   If[FileExistsQ[file] && ! FreeQ[Import[file], exptag],
    Sow[name]
   ],
   {name, Names["System`*"]}
  ]
 ][[-1, 1]],
 name
]
{AnatomyForm, AnatomyPlot3D, AssumeDeterministic, BatchNormalizationLayer, 
  BatchSize, BayesianMaximization, BayesianMaximizationObject, 
  BayesianMinimization, BayesianMinimizationObject, CatenateLayer, 
  ChannelBase, ChannelDatabin, ChannelListen, ChannelListener, 
  ChannelListeners, ChannelObject, ChannelPreSendFunction, ChannelSend, 
  ChannelSubscribers, CloudExpression, CloudExpressions, 
  ContentFieldOptions, ContentLocationFunction, ConvolutionLayer, CreateChannel, 
  CreateCloudExpression, CrossEntropyLossLayer, DeconvolutionLayer, 
  DeleteChannel, DeleteCloudExpression, DotPlusLayer, DropoutLayer, 
  DynamicImage, ElementwiseLayer, EmbeddingLayer, EntityStore, 
  FeatureDistance, FeatureExtract, FeatureExtraction, FeatureExtractor, 
  FeatureExtractorFunction, FileNameForms, FileSystemMap, FileSystemScan, 
  FindChannels, FlattenLayer, FormControl, GalleryView, HandlerFunctions, 
  HandlerFunctionsKeys, InitialEvaluationHistory, MaxTrainingRounds, 
  MaxWordGap, MeanAbsoluteLossLayer, MeanSquaredLossLayer, NetChain, 
  NetDecoder, NetEncoder, NetExtract, NetGraph, NetInitialize, NetPort, 
  NetTrain, Pagination, PoolingLayer, RemoveChannelListener, ReshapeLayer, 
  ResourceData, ResourceObject, ResourceRemove, ResourceSearch, 
  SearchAdjustment, SearchQueryString, SearchResultObject, SkinStyle, 
  SoftmaxLayer, SummationLayer, TargetDevice, TotalLayer, URLSubmit, 
  $AllowExternalChannelFunctions, $ChannelBase, $CookieStore, $EntityStores}
Length[syms]
84
$Version
"11.0.0 for Mac OS X x86 (64-bit) (July 28, 2016)"

Not a terribly fancy solution, but it works.

$\endgroup$
  • $\begingroup$ You can also try with NotebookImport[NotebookFileName[], "ObjectNameGrid"], it should be more stable. $\endgroup$ – Kuba Aug 14 '16 at 20:22
  • 1
    $\begingroup$ The Experimental in 10.4 section of this answer contains another solution based on searching through the documentation notebooks for the [[EXPERIMENTAL]] graphic. $\endgroup$ – Karsten 7. Aug 14 '16 at 20:22

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.