def par_map.array.go
bend-kit-concurrency@0.2.0.0 · concurrency.bend:114
import bend-kit-concurrency@0.2.0.0/concurrency.bend as Concurrency
import Base
114
115def par_map.array.go(~A: Type, ~B: Type, ~f: A -> B, a: Array<A>, d: Nat) -> Array<B>:
116 match a d:
117 case ALeaf{x} _:
118 ALeaf{f(x)}
119 case ANode{xs, ys} 0n:
120 ANode{par_map.array.go(~A, ~B, ~f, xs, 0n), par_map.array.go(~A, ~B, ~f, ys, 0n)}
121 case ANode{xs, ys} 1n+ +p:
122 lo hi = par_map.array.go(~A, ~B, ~f, xs, p) par_map.array.go(~A, ~B, ~f, ys, p)
123 ANode{lo, hi}