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.

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 array(values, /, z=1, function=add):
    i = 0
    for item in values:
        yield function(z, i), item
        i = i + 1
m = array(a, z=1, function=lshift)
a = %w(abc xyz)
a.map.with_index{|v, i| [i, v] }

New implementation...
< >
reilas