TL;DR: maybe use
filteredClass=FilteredEntityClass[EntityClass["WolframLanguageSymbol", All],
EntityFunction[e,
Not[FreeQ[#, _RuleDelayed] ∨ FreeQ[#, _Rule]] &@e["Options"]]];
Then :
filteredList = filteredClass // EntityList;
or for a random list of names
filteredClass[EntityProperty["WolframLanguageSymbol", "Name"]] //
RandomChoice[#, 50] &
{DensityPlot3D,Asymptotic,ListLogLinearPlot,DictionaryWordQ,Expectation,InverseFourierSinTransform,HumanGrowthData,InitializationValue,DiscreteMaxLimit,Dendrogram,FunctionContinuous,ExternalStoragePut,ListStepPlot,Play,CreateWindow,AbsoluteTime,CurrentImage,Area,SliceDensityPlot3D,KagiChart,DSolve,FeatureImpactPlot,ImageMesh,ReImPlot,CloudSubmit,DiscretePlot,ClockGauge,PossibleZeroQ,Solve,PopupWindow,TimeSeries,HighlightImage,ListVectorDisplacementPlot,FourierSinTransform,RegionWithin,SemidefiniteOptimization,ContinuedFractionK,GeoGraphPlot,RegionDilation,NotebookPut,WikidataData,FindFit,ResourceFunction,VectorPlot,ExternalStorageUpload,BlockchainBlockData,TimeSeriesShift,LogPlot,DensityPlot3D,VectorDisplacementPlot3D}
Note : The options with RuleDelayed seem to often rely on global variables such as $Assumptions or $PlotTheme as such variables are susceptible to change. In other cases there are functions such as StandardForm, a pure form FrontEndExecute and there is also a True in the mix that I do not understand
If you want the list of all system functions that have both Rule and RuleDelayed then one possibility is to use the Entity framework. As an attempt to make this often obscure part of Mathematica a bit easier to understand I will proceed step by step in a series of questions for pedagogical purposes and a bit for my amusement.
The question:
How can I get a list of system functions for which Options[function] yields a list of both rules and delayed rules ?
The documentation here has a list of entity "types".
These are broad categories like "Chemistry", "Language" , etc.
Another possibility is to use EntityValue[] to get a list of entity types.
Search for "Wolf" in that list you might find :
"WolframLanguageSymbol"
That is the best looking candidate.
Now "WolframLanguageSymbol" is what is called an entity type. That type name encapsulates a list of entity classes and each entity class encapsulates entities. Entities are the fine grained objects like "apple" whereas an entity class is something more broad like "fruits".
So:
Step 1: What entity classes are in this type ? Will it really be of any use to me ?
To check the classes you can use:
EntityClassList["WolframLanguageSymbol"]

In that list

looks like the best candidate.
Step 2: What can we ask ?
That class encapsulates many entities. Each entity is a Wolfram Language symbol such as Plot. To check what we can ask we can use:

In that list we will see "options"
To check that that is really the options for the symbol we could take a random entity with RandomEntity

Entity["WolframLanguageSymbol", "InverseJacobiSC"]["Options"]
(* {} *)
Correct !
As can be checked with
InverseJacobiSC // Options
(* {} *)
For the reader that is not convinced, after trying RandomEntity a few times you might find something like Entity["WolframLanguageSymbol", "Fourier"] which gives a non empty list.
Step 3 : Filtering results
Ok now how do we filter the entities that suit the request from the original question ?
$\longrightarrow$ FilteredEntityClass
One may define an EntityFunction that filters out what we want.
So what do we want ?
Now comes the usual Mathematica code. We want a list of functions that contains RuleDelayed and Rule. Those explicit names can be found with FullForm. How do we ask whether a list contains a pattern ? We could use Cases or Select and Length but FreeQ seems closer to what we want although it is the negation of what we want. Hence, we could use double negation, that is,
Not[Not[a && b]]
If we do not remember or know how that goes we can use :
Not[a && b] // LogicalExpand
(* ! a || ! b *)
So we can set up a filtered entity class with
filteredClass=FilteredEntityClass[EntityClass["WolframLanguageSymbol", All],
EntityFunction[e,
Not[FreeQ[#, _RuleDelayed] ∨ FreeQ[#, _Rule]] &@e["Options"]]];
Then use :
filteredList = filteredClass // EntityList;
For more information on entities I started a post here. I plan on updating my answer there with a concrete example and utility functions to facilitate searching in the future.
Options[Plot].Integrateas well and probably every function that relies on the global variable$Assumptions. – userrandrand Dec 08 '22 at 18:43