eval: Simplify.
authorRicardo Wurmus <rekado@elephly.net>
Tue, 4 Jun 2019 11:21:21 +0000 (13:21 +0200)
committerRicardo Wurmus <rekado@elephly.net>
Tue, 4 Jun 2019 11:21:21 +0000 (13:21 +0200)
* modules/language/python/eval.scm (aif): Remove macro.
(eval0, compile, exec0): Simplify.

modules/language/python/eval.scm

index 4cfd239..9f8724f 100644 (file)
@@ -15,8 +15,6 @@
 
 (define seval (@ (guile) eval))
 
-(define-syntax-rule (aif it p x y) (let ((it p)) (if it x y)))
-
 (define-syntax-rule (L x) (@@ (ice-9 local-eval) x))
 
 (define-syntax globals
@@ -142,24 +140,20 @@ global environment @var{global}."
 
 (define (comp x) (error "not implemented"))
 
-(define* (eval0 x #:optional (locals #f) (globals #f))
+(define* (eval0 x #:optional locals globals)
   (cond
    ((string? x)
-    (aif xp (p x)
-         (aif cp (comp xp)
-              (local-eval cp locals globals)
-              (raise SyntaxError))
-         (raise SyntaxError)))
+    (or (and=> (and=> (p x) comp)
+               (lambda (cp)
+                 (local-eval cp locals globals)))
+        (raise SyntaxError)))
    ((pair? x)
     (local-eval x locals globals))))
 
 (define* (compile x filename mode
                   #:optional (flags 0) (dont_inherit #f) (optimize -1))
-  (aif xp (p x)
-       (aif cp (comp xp)
-            cp
-            (raise SyntaxError))
-       (raise SyntaxError)))
+  (or (and=> (p x) comp)
+      (raise SyntaxError)))
 
 (define-syntax exec
   (lambda (x)
@@ -169,5 +163,5 @@ global environment @var{global}."
       ((exec x . l)
        #'(exec0 x . l)))))
 
-(define* (exec0 x #:optional (locals #f) (globals #f))
+(define* (exec0 x #:optional locals globals)
   (local-eval x locals globals))