Logo

Programming-Idioms

This language bar is your friend. Select your favorite languages!

Idiom #350 Create an enumerated collection

Generate a collection of enumerated values, m, given the list a, delta value z, and delta function f.

For example, `1=a`, `2=b`, `4=c`, etc.

a = %w(abc xyz)
a.map.with_index{|v, i| [i, v] }
import java.util.LinkedHashMap;
import java.util.Map;
Map<Integer, E> m = new LinkedHashMap<>();
interface F<T> { T get(int x); }
F<Integer> f = x -> z << x;
int i = 0;
for (E e : a) m.put(f.get(i++), e);
from operator import add, lshift
def g(x, /, z=1, f=add):
    i = 0
    for y in x:
        yield f(z, i), y
        i = i + 1
m = g(a, f=lshift)

New implementation...
< >
reilas