Replace unnecessary and-let*

This commit is contained in:
Justin Ethier 2019-02-13 11:58:37 -05:00
parent 2c418ec33d
commit f6be983113

View file

@ -28,7 +28,7 @@
(define (memoizable? var body)
(define cont #f)
(define (scan exp return locals)
(trace:error `(DEBUG scan ,(ast:ast->pp-sexp exp)))
;(trace:error `(DEBUG scan ,(ast:ast->pp-sexp exp)))
;(write `(DEBUG scan ,var ,cont ,(ast:ast->pp-sexp exp))) (newline)
(cond
;; TODO: reject if a lambda is returned
@ -94,16 +94,23 @@
(cdr exp)))
(else exp)
))
;;(write `(DEBUG ,var ;,body
;; ,(ref? var)
;; ,(ast:lambda? body)
;; ,(eq? (ast:lambda-formals-type body) 'args:fixed)
;; ,(< (length (ast:lambda-args body)) 4) ;; Too many combinations w/more args
;; ,(adb:get/default var #f)
;; ,(adbv:self-rec-call? (adb:get/default var #f))
;;)) (newline)
(cond
((and-let*
((ref? var)
(ast:lambda? body)
(eq? (ast:lambda-formals-type body) 'args:fixed)
(< (length (ast:lambda-args body)) 4) ;; Too many combinations w/more args
(adb:get/default var #f)
(adbv:self-rec-call? var)
)
#t)
((and
(ref? var)
(ast:lambda? body)
(eq? (ast:lambda-formals-type body) 'args:fixed)
(< (length (ast:lambda-args body)) 4) ;; Too many combinations w/more args
(adb:get/default var #f)
(adbv:self-rec-call? (adb:get/default var #f))
)
(call/cc
(lambda (return)
(set! cont (car (ast:lambda-args body)))