I am learning continuity but I can not wrap my head around this code. Why does it go in infinite loop?
(but (cont #f)) (call / cc (lambda (k) (set! Cont k)) (cont #f))
< Line divider: - We define local variables
- We call some lambda functions with the current continuity, that is, we are continuing the lambda function as the argument to the current argument. Current continuity is a function of argument 1, this argument is then used as the "return value" of
call / cc
(and finally it has been ignored).- Then after a few things in our case with
<< Code> (Lambda (call / CC-retal) (let's) (call / CC-Rated (cont #f))
. We set thecont
value for this continuity. Returncc / cc
.- Since
>cont
is now a function that represents continuity, and its argument is "call / cc return value", we call that function, the argument is ignored, and Visit us at(cont #f)
- We call some lambda functions with the current continuity, that is, we are continuing the lambda function as the argument to the current argument. Current continuity is a function of argument 1, this argument is then used as the "return value" of
No comments:
Post a Comment