[plt-scheme] Parameters and Eventspaces Question
At Tue, 28 Oct 2008 19:08:07 -0600, "Doug Williams" wrote:
> The last two do exactly what I want. The first two give "get-field:
> expected an object, got #f" when the Test button is clicked. What is the
> difference?
The `parameterize' form introduces a binding only for the dynamic
extent of its body. So, in
(call-in-other-eventspace
(make-eventspace)
(lambda ()
(parameterize ((current-frame (instantiate my-frame%
("Frame 1"))))
(send (current-frame) show #t))))
the parameter binding is restored after the `show' method returns.
In contrast, in
(call-in-other-eventspace
(make-eventspace)
(lambda ()
(let ((frame (instantiate my-frame%
("Frame 3"))))
(current-frame frame)
(send (current-frame) show #t))))
the parameter's current binding is mutated, so the new value sticks
after the callback returns.
Matthew