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.

questionAnswers(2)

yourAnswerToTheQuestion