rosella/libcompiler/compiler.scm

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: