feat: reducer, but doesn`t work

This commit is contained in:
2025-12-25 00:30:15 -05:00
parent 2c3ce9baf7
commit d5999e8e1c
15 changed files with 228 additions and 150 deletions

19
pkg/lambda/rename.go Normal file
View File

@@ -0,0 +1,19 @@
package lambda
func Rename(e Expression, target string, substitute string) {
switch e := e.(type) {
case *Variable:
if e.Value == target {
e.Value = substitute
}
case *Abstraction:
if e.Parameter == target {
e.Parameter = substitute
}
Rename(e.Body, target, substitute)
case *Application:
Rename(e.Abstraction, target, substitute)
Rename(e.Argument, target, substitute)
}
}