1 Free Identifiers
Implement the function freeIds, which takes a WAE and produces a set of strings. The set should contain a string for each free identifier in the given WAE.
def freeIds(expr: WAE): Set[String] = ???
test(freeIds(WAE({with {x 1} {+ x y}})), Set(y)) test(freeIds(WAE({with {z 2} 1})), Set())
2 Binding Identifiers
Implement the function bindingIds, which is like freeIds, but the result set contains a string for each binding identifier in the given WAE (whether or not the binding identifier is ever referenced by a bound identifier).
def bindingIds(expr: WAE): Set[String] = ???
test(bindingIds(WAE({with {x 1} {+ x y}})), Set(x)) test(bindingIds(WAE({with {z 2} 1})), Set(z))
3 Bound Identifiers
Implement the function boundIds, which is like freeIds, but the result set contains a string for each bound identifier in the given WAE.
def boundIds(expr: WAE): Set[String] = ???
test(boundIds(WAE({with {x 1} {+ x y}})), Set(x)) test(boundIds(WAE({with {z 2} 1})), Set())

![[Solved] CS320 Exercise #1-Free Identifiers](https://assignmentchef.com/wp-content/uploads/2022/08/downloadzip.jpg)

![[SOLVED] CS320 Machine Project 5 Building a Data Website Java](https://assignmentchef.com/wp-content/uploads/2022/08/downloadzip-1200x1200.jpg)
Reviews
There are no reviews yet.