Assuming dynamic scoping, what would be the difference in the display statement if it was shallow or deep binding? I understand that shallow binding is when it is bound at the call and deep is when it is bound while passed as a parameter but I'm not sure how this works in the context of scheme. I think that the deep binding should print 2 but I'm not sure
(define A
(let* ((x 2)
(C (lambda (P)
(let ((x 4))
(P))))
(D (display x))
(B (let ((x 3))
(C D))))
(B)))