diff options
author | Stefan Israelsson Tampe <stefan.itampe@gmail.com> | 2018-03-06 19:53:13 +0100 |
---|---|---|
committer | Stefan Israelsson Tampe <stefan.itampe@gmail.com> | 2018-03-06 19:53:13 +0100 |
commit | de1ebe88610f35371f50aa7d6699e2b3b34e79ec (patch) | |
tree | 9447c0fce3d4b87dd4db10ca9471a50f3bfb8d91 /modules/language/python/try.scm | |
parent | 251c4964e9c80cdce0363e0902d0fd3e65b3ca96 (diff) | |
parent | dc79c0ac58f5bcc1f75a96307256dc4cce441f9f (diff) |
Merge branch 'master' of gitlab.com:python-on-guile/python-on-guile
Diffstat (limited to 'modules/language/python/try.scm')
-rw-r--r-- | modules/language/python/try.scm | 13 |
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) |