Question: Consider representing a sugared calculus term as an s-expression, with the syntax: S ::= ( (V+) S) | (S+) | V where + mean one
Consider representing a sugared calculus term as an s-expression, with the syntax: S ::= ( (V+) S) | (S+) | V
where + mean "one or more".
Write desugar which takes an s-expression representing a sugared calculus term and returns an s-expression representing the equivalent unsugared term.
For example: (desugar '( (f x) (f (t g g)))) -> ( f ( x (f ((t g) g))))

Consider representing a sugared calculus term as an s-expression, with the syntax s::=((V+)s)(S+)V where mean "one or more". So for example fx.f(tgg) would be represented as the s-expression ((f)x)(f(tgg))). Write which takes an sexpression representing a sugared calculus term and returns an s-expression representing the equivalent unsugared term. For example
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
