struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sundar Narasimhan <>
Subject Re: How do you keep your session junk free?
Date Fri, 07 Mar 2003 19:03:08 GMT
>Explain how some other approach handles it in any better way? Use of
>token to prevent duplicate submissions works for me. And what do you
>mean by a continuation-style programming?
Hi, Rick: CPS is a commonly accepted idiom for representing "what a
program does next" in your language. Some languages such as
Scheme (a lisp variant/dialect) have strong support for it.. 

In languages such as these.. you can actually write

   int x = 5;
   x = getValue1();
   y = getValue2();

where getValue1 and getValue2 display the appropriate pages etc., and when
the user hits the back button your program's state gets unwound to the
point where it should be.. w/out ANY extra coding! You as a coder
wouldn't have to write any code to "set" the variable x's value back
to what it was etc.

Obviuosly in languages w/out continuations and closures, people tend
to simulate them w/ tokens, inner classes etc., but these are VERY
POOR substitutes for these things. 

If you google those terms I'm sure you'll get enough hits to keep you
busy for a while (I personally learnt cps stuff when I worked w/ Jeff
Siskind's Screamer which augmented Lisp with non-deterministic
primitives :). I think some of the scheme papers wrt. continuations
are classics, and explain how you can do things like co-routines
etc. w/ them. Be prepared to bend your mind a lot though -- I've never
been able to teach continuations easily -- most programmers (me
included) who grew up with Fortran, Pascal and C etc. have a *very
hard* time grokking them initially. If you run across good
explanations that help you understand it, let me know.. I'm always
looking for new pedagogical tools for this. (I understand that both
Python and Ruby camps are investigating adding support for this sort
of thing :)

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message