[plt-scheme] I miss end-of-time...

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Thu Mar 11 18:14:51 EST 2010

Just kill the window.

In my experience: When you run the application, you don't want to shut  
down the last window automatically. You want to see the last message.


On Mar 11, 2010, at 5:48 PM, <engineer at alum.mit.edu> wrote:

> My student now mainly uses exit because it presents a convenient way  
> to
> close the World and State windows together.  I suppose we're looking  
> for a
> stop-when that will close the windows rather than draw one last scene.
> Maybe the last-picture argument could produce (union Scene false),  
> with
> false indicating that the world's window(s) should close.  That's  
> only a
> very low priority request.
>
> Paul
>
> -----Original Message-----
> From: Matthias Felleisen [mailto:matthias at ccs.neu.edu]
> Sent: Thursday, March 11, 2010 4:07 PM
> To: engineer at alum.mit.edu
> Cc: 'PLT-Scheme Mailing List'
> Subject: Re: [plt-scheme] I miss end-of-time...
>
>
> Paul,
>
>  -- cmd-k is the drscheme emergency key for killing the current
> evaluation _and_ the entire evaluator
>  -- one could bind "k" in every animation like this:
>
> (require 2htdp/universe)
> (require 2htdp/image)
>
>
> (big-bang 0
>           (on-tick add1)
>           (on-draw (lambda (n) (text (if (boolean? n) " " (number-
>> string n)) 11 'red)))
>           (stop-when boolean?)
>           (on-key  (lambda (n key)
>                      (if (key=? key "k") false n))))
>
>
> and then nothing bad would happen.
>
>
>
>
>
> On Mar 11, 2010, at 3:05 PM, <engineer at alum.mit.edu> wrote:
>
>> One of my students has the habit of tying his "k" key to (exit).  It
>> gives
>> him a quick non-mousy way to close his world and state windows
>> simultaneously.  I just tried it.  It works but leaves Dr. Scheme in
>> a weird
>> state.  The Definitions window works and is immediately runnable and/
>> or
>> editable, but the Interactions window is disabled.  I wouldn't like
>> the
>> Interactions window being disabled all the time, and I don't know
>> what other
>> ramifications there may be to ending a World by (exit)-ing.  But it
>> serves
>> my student's purposes.
>>
>> -Paul
>>
>> -----Original Message-----
>> From: plt-scheme-bounces at list.cs.brown.edu
>> [mailto:plt-scheme-bounces at list.cs.brown.edu] On Behalf Of Stephen
>> Bloch
>> Sent: Thursday, March 11, 2010 2:34 PM
>> To: PLT-Scheme Mailing List
>> Subject: [plt-scheme] I miss end-of-time...
>>
>> In recent versions of the world/universe teachpacks, the "end-of- 
>> time"
>> function has been removed.  This makes some animations considerably
>> harder
>> or more unnatural to write.
>>
>> Try this: write an animation of a disk whose radius starts at 0 and
>> grows by
>> 1 pixel per second.  The animation stops when the user presses any
>> key on
>> the keyboard.
>>
>> You could do this with a struct that contains a "quitting?" field,
>> but my
>> students won't see structs for several more weeks. So the model has
>> to be
>> just a number.  Now how could the key handler indicate, with a
>> number, that
>> the animation should stop?
>>
>> Well, we could use a negative number, since it'll never go negative
>> in the
>> normal course of events... but since the draw handler is called
>> after the
>> tick/mouse/key handlers but before the stop-when handler, that means
>> we're
>> going to call a function that draws a disk of specified radius with a
>> negative number, and it'll crash.  We could write the draw handler
>> to check
>> whether the number is negative before trying to draw a disk of that
>> radius,
>> but (a) that adds unnecessary complexity, and (b) my students won't
>> see
>> conditionals for another week and a half.
>>
>> Alternatively, we could use a really large number, and just hope
>> nobody runs
>> the animation for long enough that the radius gets up to that point
>> in the
>> normal course of events.  And it has to be a small enough number
>> that a disk
>> of that size COULD be drawn, or the draw handler will crash again as
>> above.
>>
>> Or I guess we could use a fraction.  Which feels really weird and
>> unnatural,
>> and relies on the fact that the "circle" function rounds when you
>> give it a
>> fractional radius.
>>
>> With an "end-of-time" function, it's trivial: the key handler
>> ignores its
>> parameters and calls "end-of-time".
>>
>>
>> Stephen Bloch
>> sbloch at adelphi.edu
>>
>>
>>
>> _________________________________________________
>> For list-related administrative tasks:
>> http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>>
>> _________________________________________________
>> For list-related administrative tasks:
>> http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>
> _________________________________________________
>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme



Posted on the users mailing list.