From 802768584e997b189bde2fcc0496c02530fb84e2 Mon Sep 17 00:00:00 2001 From: Linus Shoravi Date: Sat, 30 May 2026 21:48:35 +0200 Subject: [PATCH 1/2] Allow guard to take multiple bodies --- scheme/rnrs/exceptions.sls | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scheme/rnrs/exceptions.sls b/scheme/rnrs/exceptions.sls index cfafed94..d5d0c3d8 100644 --- a/scheme/rnrs/exceptions.sls +++ b/scheme/rnrs/exceptions.sls @@ -35,10 +35,10 @@ (define-syntax guard (syntax-rules () - ([_ (var clause1 clausen ...) body] + ([_ (var clause1 clausen ...) body1 body2 ...] (call/cc (lambda (continue) (with-exception-handler (lambda (var) (guard-inner continue var clause1 clausen ...)) - (lambda () body)))))))) + (lambda () body1 body2 ...)))))))) From 6433fe77af140fd0d0f39a9470d58fa34008d92b Mon Sep 17 00:00:00 2001 From: Linus Shoravi Date: Sat, 30 May 2026 21:51:13 +0200 Subject: [PATCH 2/2] Add a test --- tests/r6rs.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/r6rs.scm b/tests/r6rs.scm index a44be5af..79478c04 100644 --- a/tests/r6rs.scm +++ b/tests/r6rs.scm @@ -504,3 +504,8 @@ #,(free-identifier=? #'id1 #'id2) #,(bound-identifier=? #'id1 #'id2))]))) (assert-equal? (a fred) '(#t #f))) + +;; Conditions +(guard (e (#t '())) + (+ 1 2) + (+ 3 4))