package normalorder import ( "git.maximhutz.com/max/lambda/pkg/engine" "git.maximhutz.com/max/lambda/pkg/lambda" ) type Engine struct { expr lambda.Expression } func (e Engine) Get() (lambda.Expression, error) { return e.expr, nil } func (e Engine) Set(l lambda.Expression) error { e.expr = l return nil } func (e Engine) Step(i int) bool { var reduced bool for range i { e.expr, reduced = ReduceOnce(e.expr) if !reduced { return false } } return true } var _ engine.Engine[lambda.Expression] = (*Engine)(nil)