def reach
bendtorch-core@0.1.0.0 · src/autograd/backward_LAWS.bend:51
import bendtorch-core@0.1.0.0/src/autograd/backward_LAWS.bend as BackwardLAWS
import Base
import bendtorch-core@0.1.0.0/src/autograd/backward.bend as Backward
51def reach(nodes: List<&2, Backward.Node>, flags: List<&2, Bool>, +count: Nat) -> List<&2, Bool>:
52 match nodes flags count:
53 case Nil{} flags count:
54 flags
55 case Con{node, rest} Nil{} count:
56 Nil{}
57 case Con{node, rest} Con{flag, pending} 0n:
58 Nil{}
59 case Con{node, rest} Con{+flag, pending} 1n+below:
60 flag <> reach(rest, spread(node, flag, below, pending), below)