feat: lambda is mutable
This commit is contained in:
@@ -21,7 +21,7 @@ func encodeAbstraction(n *saccharine.Abstraction) lambda.Expression {
|
||||
// If the function has no parameters, it is a thunk. Lambda calculus still
|
||||
// requires _some_ parameter exists, so generate one.
|
||||
if len(parameters) == 0 {
|
||||
freeVars := result.GetFree()
|
||||
freeVars := lambda.GetFree(result)
|
||||
freshName := lambda.GenerateFreshName(freeVars)
|
||||
parameters = append(parameters, freshName)
|
||||
}
|
||||
@@ -65,7 +65,7 @@ func reduceLet(s *saccharine.LetStatement, e lambda.Expression) lambda.Expressio
|
||||
}
|
||||
|
||||
func reduceDeclare(s *saccharine.DeclareStatement, e lambda.Expression) lambda.Expression {
|
||||
freshVar := lambda.GenerateFreshName(e.GetFree())
|
||||
freshVar := lambda.GenerateFreshName(lambda.GetFree(e))
|
||||
|
||||
return lambda.Application{
|
||||
Abstraction: lambda.Abstraction{Parameter: freshVar, Body: e},
|
||||
|
||||
Reference in New Issue
Block a user