Esquema e Ligação Raso
(define make (lambda (x) (lambda (y) (cons x (list y)))))
(let ((x 7)
(p (make 4)))
(cons x (p 0)))
Eu sou novo em Scheme e programa funcional, então eu sou um pouco desajeitado em percorrer programas, mas eu entendo que se eu usasse deep binding este programa retornaria (7 4 0). Faz sentido. O que esse programa faria usando vinculação rasa? Eu entendo isso pode parecer idiota, mas é o p na linha com contras uma redefinição? Então, nesse caso, nós retornaríamos (7 0)?
Basicamente, eu entendo o conceito de deep rails, mas eu sinto que estou mexendo em Scheme porque eu não sou louco por isso.