Consider again the interpreter from Project 3, which given t…

Consider again the interpreter from Project 3, which given the program          let add = lam x {lam y {x + y} }      in let f = add @ 2      in let g = lam x {f @ x}      in g @ 7    end end end will return a list containing one number. Which? 

Consider again the interpreter from Project 3.  Can it inter…

Consider again the interpreter from Project 3.  Can it interpret a definition of a recursive function, such as the factorial function? Possible answers are: A1: yes, just write    let fact = lam n     {if n {n * fact @ (n – 1) } { 1 }}   in fact @ …  end A2: yes, by defining a certain combinator Z and then write   let Fact = lam f {lam n      { if n {n * f @ (n – 1) } { 1 }}} in    Z @ Fact @ …    end end A3: no, the interpreter cannot handle recursion and will complain about the function Which one is correct: