In[]:=
ClearAll[IntegerDigitsFunction]​​IntegerDigitsFunction[f_][(integer_)?IntegerQ,args___]:=Module[{integerDigits},integerDigits=IntegerDigits[integer];Switch[Depth[f[integerDigits]],1,f[integerDigits],x_/;x==2,FromDigits[f[integerDigits]],3,Table[FromDigits[n],{n,f[integerDigits]}],4,Map[FromDigits,f[integerDigits],{2}]]]​​​​(*IntegerDigitsFunction[f_][(strings_List)?validQ,args___]:=(IntegerDigitsFunction[f][#1,args]&)/@strings​​​​IntegerDigitsFunction[f_][other:Except[_?validQ],args___]:=Null/;(ResourceFunction["ResourceFunctionMessage"][IntegerDigitsFunction::strse,HoldForm[IntegerDigitsFunction[f][other]]];False)​​​​IntegerDigitsFunction[args___]:=Null/;Length[HoldComplete[args]]=!=1&&(ResourceFunction["ResourceFunctionMessage"][IntegerDigitsFunction::argx,IntegerDigitsFunction,Length[HoldComplete[args]]];False)​​​​IntegerDigitsFunction/:MakeBoxes[expr:IntegerDigitsFunction[___],StandardForm]/;!TrueQ[$inDef]:=Block[{$inDef=True},ResourceFunction;With[{sb=MakeBoxes[IntegerDigitsFunction,StandardForm],rb=FunctionResource`Private`makeResourceFunctionBoxes["StringFunction"]},MakeBoxes[expr,StandardForm]/.sb->rb]]*)
In[]:=
validQ[arg_]:=MatchQ[Flatten[{arg}],{___?IntegerQ}]​​​​validQ[___]:=False
In[]:=
IntegerDigitsFunction[Reverse][1234]
Out[]=
4321
In[]:=
IntegerDigitsFunction[Select[EvenQ]][1234]
Out[]=
24
In[]:=
IntegerDigitsFunction[RotateLeft][1234]
Out[]=
2341
In[]:=
IntegerDigitsFunction[RotateRight][1234]
Out[]=
4123
In[]:=
IntegerDigitsFunction[RandomSample][1234567]
Out[]=
2145376
In[]:=
IntegerDigitsFunction[ReplaceAll[{1->9}]][1234567]
Out[]=
9234567
In[]:=
IntegerDigitsFunction[OperatorApplied[Riffle][9]][1234567]
Out[]=
1929394959697
In[]:=
IntegerDigitsFunction[Delete[3](*anoperatorformofDeletethatdeletesthethirdpartofanexpression*)][1234567]
Out[]=
124567
In[]:=
IntegerDigitsFunction[OperatorApplied[Drop][6]][123456789101112]
Out[]=
789101112
In[]:=
IntegerDigitsFunction[Union][123456789101112]
Out[]=
123456789
In this case, Union gives {0,1,2,3,4,5} which FromDigits gives 12345 and the 0 is dropped.
In[]:=
IntegerDigitsFunction[Union][123451011]
Out[]=
12345
In[]:=
Trace[IntegerDigitsFunction[Union][123451011]]
In[]:=
IntegerDigitsFunction[DeleteDuplicates][12341234]
Out[]=
1234
In[]:=
IntegerDigitsFunction[DeleteDuplicates][4321434321]
Out[]=
4321

Champernowne Number example


Split


SplitBy

In[]:=
IntegerDigitsFunction[OperatorApplied[SplitBy][EvenQ]][12222222222223344]
Out[]=
{1,222222222222,33,44}

DeleteAdjacentDuplicates

In[]:=
IntegerDigitsFunction[DeleteAdjacentDuplicates][12222222222223344]
Out[]=
1234
DeleteAdjacentDuplicates
never reorders elements, but only removes them.
In[]:=
IntegerDigitsFunction[DeleteAdjacentDuplicates][12222222222223344433333322221]
Out[]=
1234321
Delete elements unless they are larger than the preceding ones:
In[]:=
IntegerDigitsFunction[OperatorApplied[DeleteAdjacentDuplicates][Greater]][13543419978]
Out[]=
1354998
Delete elements that are even or odd next to each other:
In[]:=
IntegerDigitsFunction[OperatorApplied[DeleteAdjacentDuplicates][EvenQ[#1]==EvenQ[#2]&]][13543419978]
Out[]=
143418

FindClusters


Most and Rest and TakeDrop and TakeList


Append, etc.

In[]:=
IntegerDigitsFunction[Append[5]][1234]
Out[]=
12345
In[]:=
IntegerDigitsFunction[Prepend[1]][234]
Out[]=
1234
In[]:=
IntegerDigitsFunction[Insert[5,-1]][234]
Out[]=
2345
In[]:=
?Delete
Out[]=
Symbol
Delete[expr,n] deletes the element at position n in expr. If n is negative, the position is counted from the end. ​Delete[expr,{i,j,…}] deletes the part at position {i,j,…}. ​Delete[expr,{{
i
1
,
j
1
,…},{
i
2
,
j
2
,…},…}] deletes parts at several positions. ​Delete[pos] represents an operator form of Delete that can be applied to an expression.
In[]:=
IntegerDigitsFunction[Delete[2]][12345]
Out[]=
1345

Length

This is equivalent to IntegerLength:
In[]:=
CopyToClipboard[RandomInteger[
100
10
]]
In[]:=
IntegerDigitsFunction[Length][4986222297246417957614036637621304789098098238565899621266906858185935175112879800673018652553867302]
Out[]=
100
This could be like IntegerLengthWhile:
In[]:=
IntegerDigitsFunction[OperatorApplied[LengthWhile][#!=3&]][4986222297246417957614036637621304789098098238565899621266906858185935175112879800673018652553867302]
Out[]=
23
Find the length of the run of digits in
π
before a 7 occurs:
Derangements:
I need to create a function for multiset derangements.
List:
A true multiset:
It might not be duplicate free.
Delete everything:
How many elements were deleted with the Except pattern?
What is the length of the difference?
We also need to delete duplicates.
Maybe DeleteDuplicates is an unnecessary step. It seems to me like it would be good to keep it just in case.
Working function final:
Compare to the ResourceFunction:
I’d like to add a few more things.
Sometimes the output is really big:
Specify a limit:
The last step is to add a usage message and CheckArguments:
I could submit this as ResourceFunction.
Now I can use this with IntegerDigitsFunction
I have one more change I want to make. I want to add an operator form for MultisetDerangments.
Here is the usage message:

BinLists

Make lists of elements in bins of width 1 from 0 to 10:
List elements in a sequence of ranges:
List elements in bins of a specified width:
Gather elements into sublists of identical elements:
Obtain tallies for a list of symbols:
I’ve used DeleteCases[...,Alternatives@@....] before, but now I can use DeleteElements. This could be helpful for building a Wordle app.

Permutations