...
- Develop the function
eval: AExp -> N
where(eval ae)
returns the number denoted by the expressionae
. For example,(eval ae1)
should return-51
, and(eval ae2)
should return16
. Wiki Markup \[Challenge\] Assume that our expression language includes many basic operations, not just the four supported by {{AExp}}. We would want a single representation for the application of a binary operator to arguments and use a separate data definition enumerating all of our operations. Rewrite the preceding data definitions, examples, and the function {{eval}} using for this. As a further challenge, extend your data definition to accommodate unary operations including negation and absolute value as unary operators.
...