22 lines
483 B
Scheme
22 lines
483 B
Scheme
#lang scheme/base
|
|
|
|
(require (file "simplifier.scm"))
|
|
(require (file "optimizer.scm"))
|
|
(require (file "mapper.scm"))
|
|
|
|
(provide reduce-function
|
|
compile-function
|
|
optimize?)
|
|
|
|
(define optimize? (make-parameter #t))
|
|
|
|
(define (compile-function lambda-form)
|
|
(map-variables (reduce-function lambda-form)))
|
|
|
|
(define (reduce-function lambda-form)
|
|
((compose (if (optimize?) optimize-function values)
|
|
simplify-lambda)
|
|
lambda-form))
|
|
|
|
; vim:set sw=2 expandtab:
|