PasteRack.org
Paste # 57831
2024-04-22 21:49:17

Fork as a new paste.

Paste viewed 291 times.


Embed:

  1. #lang racket/base
  2. (let ([tag (make-continuation-prompt-tag)])
  3.         (println "111")
  4.         (println (string-append "222"
  5.                 (call-with-continuation-prompt
  6.                         (lambda ()
  7.                                 (let ([data 0])
  8.                                         (println (string-append "333"
  9.                                                 (call-with-composable-continuation
  10.                                                         (lambda (k)
  11.                                                                 (println "---")
  12.                                                                 (println (string-append "pop& " (k " push&")))
  13.                                                                 ;; (abort-current-continuation tag "bbb")
  14.                                                                 "666")
  15.                                                         tag)))
  16.                                         (println (string-append "zzz"
  17.                                                 (call-with-composable-continuation
  18.                                                         (lambda (k)
  19.                                                                 (println "+++")
  20.                                                                 (println (string-append "pop| " (k " push|")))
  21.                                                                 ;; (abort-current-continuation tag "bbb")
  22.                                                                 "ddd")
  23.                                                         tag)))
  24.                                         (println data)
  25.                                         (set! data (+ data 1))
  26.                                         (if (= data 56)
  27.                                                 (abort-current-continuation tag "bbb")
  28.                                                 "777")))
  29.                         tag
  30.                         (lambda (k)
  31.                                 (println (string-append "888" k))
  32.                                 "aaa"
  33.                                 )))))
  34.         (println "999")

=>

"111"

"---"

"333 push&"

"+++"

"zzz push|"

0

"pop& 777"

"333666"

"+++"

"zzz push|"

1

"pop| 777"

"zzzddd"

2

"pop& 777"

"333666"

"+++"

"zzz push|"

3

"pop| 777"

"zzzddd"

4

"pop| 777"

"zzzddd"

5

"pop& 777"

"333666"

"+++"

"zzz push|"

6

"pop| 777"

"zzzddd"

7

"pop| 777"

"zzzddd"

8

"pop| 777"

"zzzddd"

9

"pop& 777"

"333666"

"+++"

"zzz push|"

10

"pop| 777"

"zzzddd"

11

"pop| 777"

"zzzddd"

12

"pop| 777"

"zzzddd"

13

"pop| 777"

"zzzddd"

14

"pop& 777"

"333666"

"+++"

"zzz push|"

15

"pop| 777"

"zzzddd"

16

"pop| 777"

"zzzddd"

17

"pop| 777"

"zzzddd"

18

"pop| 777"

"zzzddd"

19

"pop| 777"

"zzzddd"

20

"pop& 777"

"333666"

"+++"

"zzz push|"

21

"pop| 777"

"zzzddd"

22

"pop| 777"

"zzzddd"

23

"pop| 777"

"zzzddd"

24

"pop| 777"

"zzzddd"

25

"pop| 777"

"zzzddd"

26

"pop| 777"

"zzzddd"

27

"pop& 777"

"333666"

"+++"

"zzz push|"

28

"pop| 777"

"zzzddd"

29

"pop| 777"

"zzzddd"

30

"pop| 777"

"zzzddd"

31

"pop| 777"

"zzzddd"

32

"pop| 777"

"zzzddd"

33

"pop| 777"

"zzzddd"

34

"pop| 777"

"zzzddd"

35

"pop& 777"

"333666"

"+++"

"zzz push|"

36

"pop| 777"

"zzzddd"

37

"pop| 777"

"zzzddd"

38

"pop| 777"

"zzzddd"

39

"pop| 777"

"zzzddd"

40

"pop| 777"

"zzzddd"

41

"pop| 777"

"zzzddd"

42

"pop| 777"

"zzzddd"

43

"pop| 777"

"zzzddd"

44

"pop& 777"

"333666"

"+++"

"zzz push|"

45

"pop| 777"

"zzzddd"

46

"pop| 777"

"zzzddd"

47

"pop| 777"

"zzzddd"

48

"pop| 777"

"zzzddd"

49

"pop| 777"

"zzzddd"

50

"pop| 777"

"zzzddd"

51

"pop| 777"

"zzzddd"

52

"pop| 777"

"zzzddd"

53

"pop| 777"

"zzzddd"

54

"pop& 777"

"333666"

"+++"

"zzz push|"

55

"888bbb"

"222aaa"

"999"