Files
lambda/pkg/engine/normalorder/engine.go
2026-02-05 13:37:57 -05:00

35 lines
536 B
Go

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 {
for range i {
next, reduced := ReduceOnce(e.expr)
if !reduced {
return false
}
e.expr = next
}
return true
}
var _ engine.Engine[lambda.Expression] = (*Engine)(nil)