From b40e3b8b85eb3562cc49b2cbea041ee50949c46d Mon Sep 17 00:00:00 2001 From: Stefan Israelsson Tampe Date: Tue, 17 Oct 2017 00:59:20 +0200 Subject: completer --- modules/language/python/module/f2.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 modules/language/python/module/f2.scm (limited to 'modules/language/python/module/f2.scm') diff --git a/modules/language/python/module/f2.scm b/modules/language/python/module/f2.scm new file mode 100644 index 0000000..3a00158 --- /dev/null +++ b/modules/language/python/module/f2.scm @@ -0,0 +1,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)) -- cgit v1.2.3