summaryrefslogtreecommitdiff
path: root/modules/language/python/try.scm
diff options
context:
space:
mode:
authorStefan Israelsson Tampe <stefan.itampe@gmail.com>2018-02-28 13:24:08 +0100
committerStefan Israelsson Tampe <stefan.itampe@gmail.com>2018-02-28 13:24:08 +0100
commit1feb32ab54b5955464db80919d24716a8ba477c1 (patch)
treeaa48c36b2918233948bf473eec3c7b9d590f5921 /modules/language/python/try.scm
parent0f66dc88c5cc95f1dee7e4698c079a5554ddc886 (diff)
heapq added
Diffstat (limited to 'modules/language/python/try.scm')
-rw-r--r--modules/language/python/try.scm13
1 files changed, 10 insertions, 3 deletions
diff --git a/modules/language/python/try.scm b/modules/language/python/try.scm
index a36263b..36d9b04 100644
--- a/modules/language/python/try.scm
+++ b/modules/language/python/try.scm
@@ -48,12 +48,19 @@
((_ E tag l)
(check E tag l))))
+(define (m code)
+ (let ((c code))
+ (lambda (k . l)
+ (if (eq? k StopIteration)
+ (apply c 'python k l)
+ (apply c k l)))))
+
(define-syntax handler
(syntax-rules (=>)
-
((handler ecx)
- (lambda (k tag . l)
- (handler ecx tag l)))
+ (m
+ (lambda (k tag . l)
+ (handler ecx tag l))))
((handler ((#:except E => lam) . ecx) tag l)
(if (check-exception E tag l)