Racket 可以在PLT Redex中实现类似let*的表达式吗?

Racket 可以在PLT Redex中实现类似let*的表达式吗?,racket,plt-redex,Racket,Plt Redex,我最近开始使用PLT Redex,我想知道是否有人能给我一些关于如何实现像在Racket中这样的let*表达式的建议 现在我可以写这样简单的let表达式 (let (x (+ 2 4)) in (* x 2)) (let (x (+ 2 4)) in (let (y (* x 2)) in y)) (let* ([x (+ 2 4)] [y (* x 2)] [z (+ y 5)] (+ (+ x y) z)) 但是,如果我尝试了下面这样的复杂let表达式

我最近开始使用PLT Redex,我想知道是否有人能给我一些关于如何实现像在Racket中这样的let*表达式的建议

现在我可以写这样简单的let表达式

(let (x (+ 2 4)) in (* x 2))
(let (x (+ 2 4)) in (let (y (* x 2)) in y))
(let* ([x (+ 2 4)]
       [y (* x 2)]
       [z (+ y 5)]
    (+ (+ x y) z))
但是,如果我尝试了下面这样的复杂let表达式(请参见代码中的测试4和5),我会得到多个输出值:

(let (x (+ 2 4)) in (let (y (* x 2)) in (* y y)))
(let (x (+ 2 4)) in (let (y (* x 2)) in (let (y (* x 2)) in (let (z (+ y 5)) in (+ (+ x y) z)))))
我想这样重写上面的表达式

(let (x (+ 2 4)) in (* x 2))
(let (x (+ 2 4)) in (let (y (* x 2)) in y))
(let* ([x (+ 2 4)]
       [y (* x 2)]
       [z (+ y 5)]
    (+ (+ x y) z))
下面是我当前的Redex实现,以防有人需要帮助

提前谢谢 亨贝托