PLQ #4Done on:   Tuesday, February 7th

Question 1 @ 2023-02-07 18:28

What is the de-Bruijin index translation of the following expression?

{with {x 2}
  {with {y {+ x 3}}
    {with {z {+ x y}}
      {+ x z}}}}

Question 2 @ 2023-02-07 18:33

Given the following curried function, what is a proper type declaration for it?

(define (add3 x)
  (lambda (y)
    (lambda (z)
      (+ x y z))))

Question 3 @ 2023-02-07 18:36

Consider this FLANG code:

{call <thing> <arg>}

What must be true of <thing> to run properly and get a value?

(Choose the BEST answer.)


  1. <thing> must be a function form.
  2. <thing> must evaluate to a function value.
  3. <thing> must fit on one line.
  4. <thing> must evaluate to a number.
  5. <thing> must be a function form or a function binding.
  6. <thing> can be anything.

Question 4 @ 2023-02-07 18:40

What would be the result of running this expression using our Flang language implementation?

{with {+ *} {+ 1 2}}

  1. 2
  2. 3
  3. Unbound + error
  4. Unbound * error
  5. Bad with syntax
  6. Bad syntax in the call

Question 5 @ 2023-02-07 18:44

What would be the result of running this expression using our Flang language implementation?

{with {+ *} {call + 1 2}}

  1. 2
  2. 3
  3. Unbound + error
  4. Unbound * error
  5. Bad with syntax
  6. Bad syntax in the call