[plt-scheme] Re: call/cc, set!, and fluid-let

From: John Clements (clements at brinckerhoff.org)
Date: Tue Jun 14 13:27:34 EDT 2005

On Jun 14, 2005, at 1:10 PM, Doug Orleans wrote:

>   For list-related administrative tasks:
>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>
> John Clements writes:
>> On Jun 14, 2005, at 11:50 AM, David Van Horn wrote:
>>> John Clements wrote:
>>>> I claim that
>>>> (let/cc k M0 .... (k N))
>>>> is equivalent to
>>>> (begin M0 ... N)
>>>> if there are no references to k in any of M0 ... or N.
>>>
>>> Almost.  One of these will consume all available memory, the other
>>> will not.
>>>
>>> (let loop () (let/ec k (k (loop))))
>>> (let loop () (begin (loop)))
>>
>> Feh!  Not Safe-for-space.
>
> Is there a reason that the argument of a continuation application is
> not in tail position?  Is it just that you can't (always) tell
> syntactically when a continuation is being applied?  If there were
> special syntax for continuation application, would this work?

What if the argument invokes an escape continuation that jumps to a 
point in between the capture of k and its use?

john
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2430 bytes
Desc: not available
URL: <http://lists.racket-lang.org/users/archive/attachments/20050614/b14ce0f0/attachment.p7s>

Posted on the users mailing list.