Module walking

Visitor for walking terms

final class lambda_calculus.visitors.walking.DepthFirstVisitor[source]

Bases: BottomUpVisitor[Iterator[terms.Term[V]], V]

Visitor yielding subterms depth first

Type Variables:

V: represents the type of variables used in terms

visit_variable(variable: Variable[V]) Iterator[Term[V]][source]

Visit a Variable term.

Parameters

variable – variable term to visit

Returns

Iterator yielding the term

ascend_abstraction(abstraction: Abstraction[V], body: Iterator[Term[V]]) Iterator[Term[V]][source]

Visit an Abstraction term after visiting its body.

Parameters
  • abstraction – abstraction term to visit

  • body – Iterator produced by visiting its body

Returns

term appended to its body Iterator

ascend_application(application: Application[V], abstraction: Iterator[Term[V]], argument: Iterator[Term[V]]) Iterator[Term[V]][source]

Visit an Application term after visiting its abstraction and argument.

Parameters
  • application – application term to visit

  • abstraction – Iterator produced by visiting its abstraction

  • argument – Iterator produced by visiting its argument

Returns

term appended to its abstraction and argument Iterators