def Arrays.is_perfect

bend-osdev-array@0.1.0.1 · array.bend:22

import bend-osdev-array@0.1.0.1/array.bend as Array
import Base

22# whether a is a perfect tree of depth d (every leaf at depth d), the shape
23# Array.new builds and Array.set keeps
24def Arrays.is_perfect(-T: Type, +d: Nat, a: Array<T>) -> Bool:
25  match d a:
26    case 0n ALeaf{x}:
27      True{}
28    case 0n ANode{xs, ys}:
29      False{}
30    case 1n+p ALeaf{x}:
31      False{}
32    case 1n+p ANode{xs, ys}:
33      Bool.and(Arrays.is_perfect(T, p, xs), Arrays.is_perfect(T, p, ys))

Uses (4)

Used by (38)