bcc03311494b6b405eaea6421926c3ad87a9bb00
Move the event emitter and lifecycle events from the engine into the reducer, making the reducer the single point of orchestration for reduction. This eliminates the engine package entirely. - Add events.go to pkg/reducer with Start, Step, and Stop events. - Extend Reducer interface to embed Emitter and add Expression() method. - Update NormalOrderReducer to embed BaseEmitter and emit lifecycle events. - Update all plugins to attach to Reducer instead of Engine. - Remove internal/engine package. - Add Off() method to BaseEmitter to complete Emitter interface. - Fix Emitter.On signature to use generic type E instead of string.
lambda
Making a lambda calculus interpreter in Go.
Things to talk about
- Exhaustive sum types.
- Recursive descent and left-recursion.
- Observer pattern, event emission.
Links
https://zicklag.katharos.group/blog/interaction-nets-combinators-calculus/ https://arxiv.org/pdf/2505.20314
Languages
Go
96.6%
Makefile
3.4%