def inside

near-v-framework@0.4.0.0 · domain/architecture/view/ops.bend:229

import near-v-framework@0.4.0.0/domain/architecture/view/ops.bend as Ops
import Base
import near-v-framework@0.4.0.0/general/compound/ops.bend as CO
import near-v-framework@0.4.0.0/general/compound/edge/type.bend as E

229# The steps' ends inside the system, once each.
230def inside(es: List<&2, E.Edge>, +sys: List<&2, String>, +seen: List<&2, String>) -> List<&2, String>:
231  match es:
232    case []:
233      []
234    case e <> rest:
235      match e:
236        case E.Edge{+x, +y, _, _}:
237          keep_new(CO.has(sys, x) && Bool.not(CO.has(seen, x)), x,
238            keep_new(CO.has(sys, y) && Bool.not(CO.has(x <> seen, y)), y, inside(rest, sys, x <> y <> seen)))

Uses (7)

Used by (1)