def shuffle.run

bend-kit-random@0.1.0.1 · random.bend:135

import bend-kit-random@0.1.0.1/random.bend as Random
import Base

135def shuffle.run(~T: Data, +h: T, +xs: List<&2, T>, r: Rng) -> List<&2, T> & Rng:
136  +m = (U32.from_nat(List.length(&2, T, xs)) - 1 : U32)
137  shuffle.fin(~T, m,
138    shuffle.go(~T, U32.to_nat(m), m,
139      shuffle.fill(~T, xs, 0, Array.new(T, Nat.add(1n, U32.log2(m)), h)),
140      below((m + 1 : U32), r)))

Uses (16)

Used by (1)