Dear all,

I am learning call/cc in racket, so I wrote some experiment code:

#lang racket

(begin

  (define saved-k #f)

  (+ 1 (call/cc
        (lambda (k) ; k is the captured continuation
          (set! saved-k k)
          0)))

  (println 'hello)

  (saved-k 100)

  ;; why 'hello not print more than once??
 
  )

The execution result of this codeis:

1
hello
101


It does not meet my expectation, my expectation is :


1
hello
101
hello
101
....loop


About continuation, for example:

assume  exp1 is:
(+ 1 (call/cc
        (lambda (k) ; k is the captured continuation
          (set! saved-k k)
          0)))

exp2 is:
(println 'hello)

Whether exp2 is the continuation of exp1

Are these two expressions equivalent?

(begin
  (exp1)
  (exp2))


(exp1 (lambda (v)
        (exp2 continuation-of-exp2)))


So exp2 is exp1's continuation?

It makes me confused.

Excuse me, this question may be stupid, forgive my ignorance...

Thanks.

Br,
serioadamo97

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to