Function Repository Resource:

FoldIndexedList

Source Notebook

Perform a folding operation while also parsing the index as the third argument

Contributed by: Sander Huisman

ResourceFunction["FoldIndexedList"][f,x,{a,b,}]

gives {x,f[x,a,1],f[f[x,a,1],b,2],}.

ResourceFunction["FoldIndexedList"][f,{a,b,c,}]

gives {a,f[a,b,1],f[f[a,b,1],c,2]}.

ResourceFunction["FoldIndexedList"][f]

represents an operator form of ResourceFunction["FoldIndexedList"] that can be applied to expressions.

Details and Options

With a length n list, ResourceFunction["FoldIndexedList"] generates a list of length n+1.
The head of list in ResourceFunction["FoldIndexedList"][f,x,list] need not be List.
ResourceFunction["FoldIndexedList"][f][list] is equivalent to ResourceFunction["FoldIndexedList"][f,list].
ResourceFunction["FoldIndexedList"][f][x,list] is equivalent to ResourceFunction["FoldIndexedList"][f,x,list].

Examples

Basic Examples (1) 

Map a function over a list including the index:

In[1]:=
ResourceFunction["FoldIndexedList"][f, x, {a, b, c}]
Out[1]=

Scope (2) 

Without an initializer, the first element of list is the initializer:

In[2]:=
ResourceFunction["FoldIndexedList"][f, {a, b, c, d}]
Out[2]=

Make an operator:

In[3]:=
op = ResourceFunction["FoldIndexedList"][f]
Out[3]=

Feed a single list to the operator:

In[4]:=
op[{a, b, c, d}]
Out[4]=

Feed an initializer and a list to the operator:

In[5]:=
op[a, {b, c, d}]
Out[5]=

Applications (3) 

Form a continued fraction with increasing power:

In[6]:=
ResourceFunction["FoldIndexedList"][
 1/(#1 + #2^#3) &, a, {b, c, d, e, f}]
Out[6]=

Form a continued fraction with an increasing numerator:

In[7]:=
ResourceFunction[
 "FoldIndexedList"][#3/(#1 + #2) &, a, {b, c, d, e, f}]
Out[7]=

Form the product :

In[8]:=
ResourceFunction["FoldIndexedList"][#1 #2^#3 &, 1, {a, b, c, d, e}]
Out[8]=

Publisher

SHuisman

Version History

  • 1.0.0 – 21 November 2019

Related Resources

License Information