Code. Recurrence for sequence of binary tree indices in a Fenwick array [blog/fenwick/interleaving]
Code. Recurrence for sequence of binary tree indices in a Fenwick array [blog/fenwick/interleaving]
pub fn[T] interleave(sel : List[T], other : List[T]) -> List[T] {
match (sel, other) {
(Nil, _) => Nil
(Cons(x, xs), ys) => Cons(x, interleave(ys, xs))
}
}
fn b(i : Int) -> List[Int] {
match i {
0 => Cons(2, Nil)
n =>
Int::until(1 << n, (1 << n) + (1 << (n - 1))).map(fn { x => x * 2 })
|> @immut/list.from_iter
|> interleave(b(n - 1))
}
}