Submission instructions: Submit the solutions in a single .ss file. Task 2 should be submitted as a Scheme comment. ------------------------------------------ 1. Solve Exercise 4.3.1 in the textbook, that is, add the if0 construct to all relevant definitions of F1WAE *including the parser*. Add a testcase (using the "test" function) which includes a definition and usage of the factorial function. Feel free to add more language primitives (such as "*") to the language, if you think this is necessary. ------------------------------------------- 2. It is unsatisfactory to have many language primitives (such as if0). It would be more elegant if there would just be a number of "pre-installed" functions that are called using normal function application. Let's say you define a function "myif0" as a F1WAE-function of three parameters (ignore the problem that our functions can only have one parameter). The parameters are "if-part", "then-part" and "else-part", and (myif0 if-part then-part else-part) is just implemented as (if0 if-part then-part else-part). Think about whether you could use "myif0" rather than the builtin "if0" in your factorial function. Explain why or why not. If not, think about a possible fix that would let you use "myif0".