Scheme and Shallow Binding
(define make (lambda (x) (lambda (y) (cons x (list y)))))
(let ((x 7)
(p (make 4)))
(cons x (p 0)))
Jestem nowy w Schemacie i programie funkcjonalnym, więc jestem trochę niezgrabny w przechodzeniu przez programy, ale rozumiem, że jeśli użyję głębokiego wiązania, program powróci (7 4 0). Ma sens. Co zrobiłby ten program przy użyciu płytkiego wiązania? Rozumiem, że to może wydawać się głupie, ale czy p w linii z wadami jest redefinicją? W takim przypadku wrócilibyśmy (7 0)?
Zasadniczo rozumiem koncepcję głębokiego v-płytkiego wiązania, ale czuję, że pomieszałem to, patrząc na Schemat, ponieważ nie jestem z nim szalony.