def AaGCuts.all

bend-osdev-apparmor@0.1.0.0 · glob.bend:281

import bend-osdev-apparmor@0.1.0.0/glob.bend as Glob
import Base

281# every way to cut s into n pieces
282def AaGCuts.all(+n: Nat, s: List<&2, U32>) -> List<&2, List<&2, List<&2, U32>>>:
283  match n:
284    case 0n:
285      match s:
286        case Nil{}:
287          [Nil{}]
288        case Con{h, t}:
289          Nil{}
290    case 1n+p:
291      match s:
292        case Nil{}:
293          AaGCuts.empty_first(AaGCuts.all(p, Nil{}))
294        case Con{+h, +t}:
295          AaGCuts.append(AaGCuts.empty_first(AaGCuts.all(p, Con{h, t})), AaGCuts.grow(h, AaGCuts.all(n, t)))

Uses (6)

Used by (3)