mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-15 16:57:35 +02:00
Replace unnecessary and-let*
This commit is contained in:
parent
2c418ec33d
commit
f6be983113
1 changed files with 17 additions and 10 deletions
|
@ -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)))
|
||||
|
|
Loading…
Add table
Reference in a new issue