def evaluate
import bendvy-ecs-core@0.1.0.4/machine_conditions.bend as MachineConditionsimport 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.