def evaluate

bendvy-ecs-core@0.1.0.4 · machine_conditions.bend:30

import bendvy-ecs-core@0.1.0.4/machine_conditions.bend as MachineConditions
import Base

30def evaluate(~Atom: Data,~Env: Data,~leaf: Atom -> Env -> Bool,tree: Tree<Atom>,+env: Env) -> Bool:
31  match tree:
32    case Leaf{atom}: leaf(atom,env)
33    case Constant{value}: value
34    case Negate{inner}: Bool.not(evaluate(~Atom,~Env,~leaf,inner,env))
35    case Both{left,right}: both_next(~Env,evaluate(~Atom,~Env,~leaf,left,env),env,env => evaluate(~Atom,~Env,~leaf,right,env))
36    case Either{left,right}: either_next(~Env,evaluate(~Atom,~Env,~leaf,left,env),env,env => evaluate(~Atom,~Env,~leaf,right,env))

Uses (5)

Used by (0)

No other definition uses this definition.