An off-list discussion spurred by my previous post about IDE's for education 
led to the following blue-sky idea:

Suppose there were another pane or window in DrRacket that showed essentially 
what we see in Interactions immediately after we click "Run" -- the values of 
all the top-level expressions in the Definitions pane -- but was "live", in the 
sense that every time you made an edit in the Definitions pane, it re-evaluated 
that expression and all other expressions that depended on it.  (If you make an 
edit that makes the Definitions pane no longer syntactically legal, it 
re-evaluates top-level expressions as far as it can, then gives up.)  This new 
pane would NOT be a full-fledged editing pane -- you shouldn't be able to type 
into it, delete anything from it, etc. but you should be able to copy and paste 
from it.

This live-update window would only make sense for pure-functional programming 
-- I don't want things with side effects being re-evaluated every couple of 
keystrokes! -- but it could be a useful addition to BSL and ISL.  (Which raises 
another implementation question: how does a plug-in check that it's being used 
from BSL or ISL?  Or, alternatively, how does it check that there are no 
stateful constructs in the Definitions pane?)

I think a naive version of this wouldn't be difficult to implement, if I knew 
where to get at the hooks for editing in the Definitions pane.  And if I knew 
anything about writing DrRacket plug-ins :-)

Then we'd have to play with it and see whether it's actually pedagogically 
useful.


Stephen Bloch
[email protected]


_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev

Reply via email to