diff --git a/scheme/cyclone/util.sld b/scheme/cyclone/util.sld index e043e8ed..644f0288 100644 --- a/scheme/cyclone/util.sld +++ b/scheme/cyclone/util.sld @@ -13,6 +13,7 @@ ;; Code analysis tagged-list? if? + if-syntax? begin? lambda? pair->list @@ -90,6 +91,14 @@ (define (if? exp) (tagged-list? 'if exp)) +(define (if-syntax? exp) + (and + (if? exp) + (or + (= (length exp) 3) + (= (length exp) 4)))) + + ; begin? : exp -> boolean (define (begin? exp) (tagged-list? 'begin exp))