blob: 3a00158b3a9d75b98532747570942e04e9418591 (
about) (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
(define-module (language python module f2)
#:use-module (language python exceptions)
#:use-module (language python for)
#:use-module (language python yield)
#:use-module (language python try)
#:re-export (next send sendException Exception)
#:export (gen))
(define gen
(make-generator
(lambda (yield n)
(try
(lambda ()
(let lp ((i 0) (s 0))
(if (< i n)
(let ((x (+ s i)))
(call-with-values (lambda () (yield x))
(lambda x (pk 'send x)))
(lp (+ i 1) x)))))
(#:except Exception =>
(lambda (tag l)
(apply pk tag l)))
#:finally
(lambda ()
(pk 'yeeeeeees))))))
(for ((i : (gen 10))) ()
(pk i))
|