Answered step by step
Verified Expert Solution
Question
1 Approved Answer
Please explain thoroughly :) Consider the following syntax for a term in the unsugared untyped calculus, represented as an s-expression: E::=(E)(EE)V where V is a
Please explain thoroughly :)
Consider the following syntax for a term in the "unsugared" untyped calculus, represented as an s-expression: E::=(E)(EE)V where V is a variable. For example, the term fx.f(tgg) would be de-sugared to f.x.f((tg)g) and then represented as the s-expression ( f(x ( f((tg) g) )) ). Write a scheme function fv which takes an s-expression of this sort, and returns a list of the free variables. E.g., (fvv(f((f((tg)g)))))(tg) . Hint: you may want to write a function to take the union of two sets represented as lists of elements, and a function to remove a given element from a set. Bonus: 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(t)gg))). Write which takes an sexpression representing a sugared calculus term and returns an s-expression representing the equivalent unsugared term. For example (desugar((fx)(f(tgg))))(f(x(f((tg)g))))Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started