What functions work in which version of Mathematica

data = WolframLanguageData[{"Select", "FileNames", "StringContainsQ", 
    "Or", "StringJoin", "ToString"}, {"Name", "DateIntroduced", 
    "DateLastModified", "VersionIntroduced", "VersionLastModified"}];

TableForm[data, 
 TableHeadings -> {None, {"Name", "DateIntroduced", 
    "DateLastModified", "VersionIntroduced", "VersionLastModified"}}]

enter image description here

So StringContainsQ is nonexistent in v9, hence it's the culprit.


WolframLanguageData has the answers you are looking for - specifically, versions in which symbols were introduced or modified!

symbols = 
 EntityValue[
  "WolframLanguageSymbol", {"Name", "FullVersionsModified", "VersionIntroduced"}]

This gives a list of the name of each symbol, the version numbers within which they were modified, and the versions in which they were introduced. For instance,

{"Capitalize", {"11.", "11.2"}, 10.1}

This shows that Capitalize was introduced in 10.1, and modified in 11 and 11.2.

Now you can Select subsets of these symbols, for instance by the version in which they were introduced:

Select[symbols, Last@# > 10 &]

This gives all symbols introduced after version 10.

Have a look at the documentation - there are many other properties for WolframLanguageData, hopefully it'll help!


See http://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn11.html and the related pages on the bottom. This will tell you that StringContainsQ has been altered going from 10 to 11. This is probably the cause of the problem. These pages seem to be the best sources on the changes (although they are not very good).


(If someone knows a more comprehensive source that would be great, note some peculiarities of this source: The page on changes from 10.4 to 11.0 does not contain StringContainsQ while the one on new/altered functions in 11 does. Is there a reason for this?)