todo Wolfram language symbol

By Xah Lee. Date: .
ValueQ[Table, Method -> Automatic]
(* False *)

ValueQ[Table, Method -> "SymbolDefinitionsPresent"]
(* True *)

ValueQ[Table, Method -> "OwnValuesPresent"]
(* False *)

ValueQ[Table, Method -> "Legacy"]
(* False *)

(* HHHH--------------------------------------------------- *)

ValueQ[PlotPoints, Method -> Automatic]
(* False *)

ValueQ[PlotPoints, Method -> "SymbolDefinitionsPresent"]
(* False *)

ValueQ[PlotPoints, Method -> "OwnValuesPresent"]
(* False *)

ValueQ[PlotPoints, Method -> "Legacy"]
(* False *)

(* HHHH--------------------------------------------------- *)

ValueQ[Pi, Method -> Automatic]
(* False *)

ValueQ[Pi, Method -> "SymbolDefinitionsPresent"]
(* False *)

ValueQ[Pi, Method -> "OwnValuesPresent"]
(* False *)

ValueQ[Pi, Method -> "Legacy"]
(* False *)

(*
Automatic
"SymbolDefinitionsPresent" → one or more symbols have any sort of definition present
"TrialEvaluation" → test if the expression changes after evaluation
"OwnValuesPresent" → one or more symbols have a non-empty OwnValues
"Legacy"

 *)

(* xah-wolfram-special-char *)
xx = {

};

Select[ xx, ((ValueQ[#, Method -> "SymbolDefinitionsPresent"] ) &) ]

Select[Names["*"] , ((ValueQ[#, Method -> "SymbolDefinitionsPresent"]) &)]

StringQ @ Names["*"][[400]]

Names["*"][[400]]

ValueQ[ Symbol[ "A298" ], Method -> "SymbolDefinitionsPresent"]

ValueQ[ Symbol[ "A298" ], Method -> "OwnValuesPresent"]

ValueQ[ Symbol[ "A298" ], Method -> "Legacy"]

OwnValues[ Symbol[ "A298" ] ]

symbolq

ValueQ[ Symbol[ "A298" ]]

Symbol[ ArrayPad ]
xtodo
Clear[classifySymbol]

classifySymbol[xsym_Symbol] :=
Block[
{xdocstr = ToString[Information[ xsym ]],
xname = SymbolName[xsym]},
If[
StringQ[xdocstr],
If[
StringStartsQ[xdocstr, xname <> " is an option"], {xsym,"Option"},
If[ StringContainsQ[xdocstr, xname <> "["], {xsym,"Function"},
     {xsym,"Other"}]],
{xsym,"Undefined or no docstr"}
   ]
]

Map[
Function[x, classifySymbol[Symbol[x]]]
, Names["T*"]]

Select[ Names["T*"], Function[x, Not @ ValueQ[Symbol[x]]]  ]

ValueQ @ Symbol["\[FormalA]" ]
True

Definition[Symbol["\[FormalA]" ]]

Symbol["\[FormalA]" ]

Definition::ssym: Symbol[\[FormalA]] is not a symbol.

{"\[FormalA]", "\[FormalB]", "\[FormalC]", "\[FormalD]", \
"\[FormalE]", "\[FormalF]", "\[FormalG]", "\[FormalH]", "\[FormalI]", \
"\[FormalJ]"}

Names["*"]

ValueQ[Tab ]
True

ValueQ @ \[Alpha]
False

Select[ Names["Ta*"], Function[x, ValueQ[Symbol[x]]]  ]
{Tab, TabFilling, Table, TableAlignments, TableDepth, TableDirections, TableForm, TableHeadings, TableSpacing, TableView, TableViewBox, TableViewBoxAlignment, TableViewBoxBackground, TableViewBoxDividers, TableViewBoxHeaders, TableViewBoxItemSize, TableViewBoxItemStyle, TableViewBoxOptions, TabSpacings, TabView, TabViewBox, TabViewBoxOptions, TagBox, TagBoxNote, TagBoxOptions, TaggingRules, TagSet, TagSetDelayed, TagStyle, TagUnset, Take, TakeDrop, TakeLargest, TakeLargestBy, TakeList, TakeSmallest, TakeSmallestBy, TakeWhile, Tally, Tan, Tanh, TargetDevice, TargetFunctions, TargetStructure, TargetSystem, TargetUnits, TaskAbort, TaskExecute, TaskObject, TaskRemove, TaskResume, Tasks, TaskSuspend, TaskWait, TautologyQ}

(* HHHH------------------------------ *)

classifySymbol[Table]
(* Function *)
classifySymbol[Background]
(* Option *)
xtodo

Wolfram language symbol

WolframLanguageData["Properties"]

{
EntityProperty[WolframLanguageSymbol, Attributes],
EntityProperty[WolframLanguageSymbol, CharacterCount],
EntityProperty[WolframLanguageSymbol, CloudSupportNotes],
EntityProperty[WolframLanguageSymbol, CloudSupportStatus]
}
WolframLanguageData[]

{Entity[WolframLanguageSymbol, $Aborted],
Entity[WolframLanguageSymbol, $ActivationKey],
Entity[WolframLanguageSymbol, $AllowDataUpdates],
}