PLQ #7Done on:   Tuesday, February 27th

Question 1 @ 2024-02-27 18:33

When using a recursive binder like letrec or our rec, what is the advantage of restricting its usage to binding only function values?


Question 2 @ 2024-02-27 18:35

Is there ever any use for a non-function form in a named expression in a recursive letrec / rec binder?


Question 3 @ 2024-02-27 18:38

Is there ever any reason to use a plain let for a function value?

(Or with, or even an internal define in idiomatic Racket)


Question 4 @ 2024-02-27 18:40

Here is a verbose implementation of a xor function in Schlac:

(define xor (lambda (a b) (if a (if b #f #t) (if b #t #f))))

What would be valid simplification of it?


Question 5 @ 2024-02-27 18:43

What does (#t #f #t 1 2) reduce to using our Schlac encodings?


Question 6 @ 2024-02-27 18:46

What is the core need for a practical implementation of recursion?