Implement when and unless from r7rs.
authorChris Hanson <org/chris-hanson/cph>
Fri, 26 Feb 2016 08:30:57 +0000 (08:30 +0000)
committerChris Hanson <org/chris-hanson/cph>
Fri, 26 Feb 2016 08:30:57 +0000 (08:30 +0000)
src/runtime/mit-macros.scm
src/runtime/runtime.pkg

index 43e17efcf33f01ebe5e08f860fd75af90ce2151f..76df49bf0e7d764b18b42032df583a2c4343c836 100644 (file)
@@ -736,4 +736,16 @@ USA.
   (syntax-rules ()
     ((ASSERT condition . extra)
      (IF (NOT condition)
-         (ERROR "Assertion failed:" 'condition . extra)))))
\ No newline at end of file
+         (ERROR "Assertion failed:" 'condition . extra)))))
+
+(define-syntax :when
+  (syntax-rules ()
+    ((when condition form ...)
+     (if condition
+        (begin form ...)))))
+
+(define-syntax :unless
+  (syntax-rules ()
+    ((unless condition form ...)
+     (if (not condition)
+        (begin form ...)))))
\ No newline at end of file
index ac828021a093316afee269dca02218aece20ca13..f59e2fcfd518f3082a0cc5bdd3f727773359fd75 100644 (file)
@@ -4907,7 +4907,9 @@ USA.
          (local-declare :local-declare)
          (parameterize :parameterize)
          (quasiquote :quasiquote)
-         (receive :receive))
+         (receive :receive)
+         (unless :unless)
+         (when :when))
   (export (runtime)
          parse-define-form))