There are a few Mathematica users beside myself that are running it on a Raspberry Pi, and we found out it does not always perform the same as the Desktop version [1][2]. During the testing of the prerelease it became obvious that some of the functions are too complex for the not-very-fast [3][4] Pi. So Wolfram decided to omit them from the Pi release branch. Which functions are omitted is not currently documented, so I'd like to find out this on my own.
1 Answer
We can get the list of all built-in functions with Information
:
Information["*"]
However, this function prints its output to a special stream called $Urgent
[5]. So to be able to manipulate the output, it needs to be redirected, for example to a text file. I ran this both on a desktop (OS X) version and a Raspberry Pi version of Mathematica V10:
infoFile = OpenWrite["output.txt"]
Block[{$Urgent = infoFile}, Information["*"]]
Close[infoFile]
And then compared the two function lists. The functions included only in the desktop version are:
Complement @@ (StringSplit[Import[#]] & /@ {"output.txt",
"pi-output.txt"})
{Absolute,AllowKernelInitialization,Ascending,Associate,CelestialSystem,ConsoleMessage, CreateDatabase,Decimate,DeclareKnownSymbols,Descending,DisplayWith,DisplayWithRef, DisplayWithVariable,DrawEdges,DrawFrontFaces,EclipseType,EdgeCapForm,EdgeColor,EdgeDashing, EdgeJoinForm,EdgeOpacity,EdgeThickness,EmbedCode,EmbeddingObject,ExternalTypeSignature,FailedQ, FinishDynamic,\[FormalX]$,FrontFaceColor,FrontFaceOpacity,GraphicsColor,GraphicsHighlightColor, LineColor,LineOpacity,LunarEclipse,MoonPhase,MoonPosition,NewPrimitiveStyle, RectangleBoxOptions,RefBox,SelectionDebuggerTag,SiderealTime,Slice,SolarEclipse,SunPosition, Sunrise,Sunset,TemplateBlock,TimeDirection,UpdateDynamicObjects,UpdateDynamicObjectsSynchronous, $EmbedCodeEnvironments,$InterfaceEnvironment,$SynchronousEvaluation}
The Pi version also has some exclusive functions:
Complement @@ (StringSplit[Import[#]] & /@
{"pi-output.txt", "output.txt"})
{AssociationFormat,AssociationMap,BooleanStrings,CloudAccountData,CountDistinct,CountDistinctBy, DataForm,DeleteDuplicatesBy,ElidedForms,ExternalBundle,FailureAction,FormTheme,IndexBy, ItemAspectRatio,ListFormat,MissingBehavior,MissingString,PartBehavior,Pivot,Query,TimeFormat, URLBuild,URLDecode,URLEncode,URLExecute,URLExistsQ,URLExpand,URLParse,URLQueryDecode, URLQueryEncode,URLShorten,ValidateQuery,$CloudCreditsAvailable,$HTMLExportRules,$TemplatePath}
-
1$\begingroup$ Something is incorrect here... Those functions are not exclusive to the Pi. They're all in my copy of v10. $\endgroup$– rm -rf ♦Commented Aug 14, 2014 at 12:26
-
$\begingroup$ @rm-rf Is this a bug in
Information
then? $\endgroup$– shrxCommented Aug 14, 2014 at 12:31 -
2$\begingroup$ Any idea where
Decimate
came from? I totally want to do this in Mathematica. $\endgroup$ Commented Aug 14, 2014 at 12:56 -
1$\begingroup$ @shrx I don't know. I typically use
Names
for this, notInformation
. $\endgroup$– rm -rf ♦Commented Aug 14, 2014 at 12:57 -
1$\begingroup$
Names["*"]
andInformation["*"]
give exactly the same list of symbols (afterRemove["Global`*"]
), so there is no need to parse the output ofInformation
... $\endgroup$ Commented Aug 14, 2014 at 15:52