[racket] Racket letrec versus R5RS and R6RS letrec and letrec*

From: Harry Spier (vasishtha.spier at gmail.com)
Date: Sun Dec 18 09:14:00 EST 2011

I saw on another list (Stack Overflow) a comment that Racket letrec
was equivalent to R5RS and R6RS letrec*, but when I checked the Racket
reference manual section 2.9 I didn't see any mention of strict left
to right evaluation.
(letrec ([id val-expr] ...) body ...+)

Similar to let, but the locations for all ids are created first and
filled with #<undefined>, and all ids are bound in all val-exprs as
well as the bodys. The ids must be distinct according to

1.) Can someone verify for me whether  Racket letrec is equivalent to
RnRS letrec* or to RnRS letrec.
2) Also how in Racket do you set an id to #<undefined> .  I was unable
to find an (undefined) function returning #<undefined> similar to
(void) returning #<void> .

Harry Spier

Posted on the users mailing list.