;; ------------------------------------------------------------------------ ;; | FILE : using-let-exps.rkt | ;; | AUTHOR : Eugene Wallingford | ;; | CREATION DATE : 2025/03/25 | ;; | DESCRIPTION : Some code for using let expressions and showing | ;; | the value of preprocesing them away. | ;; ------------------------------------------------------------------------ #lang racket (require "syntax-procs.rkt" "let-to-app.rkt" "occurs-procs.rkt") ;; ------------------------------------------------------------------------ ;; some test code for let expressions (define simple-let '(let (a x) (c a))) (define nested-let '(let (a x) (let (c (lambda (d) a)) (c a)))) ;; (let? nested-let) ;; (let->var nested-let) ;; (let->val nested-let) ;; (let->body nested-let) ;; (let? (let->body nested-let)) ;; (let->var (let->body nested-let)) ;; (let->val (let->body nested-let)) ;; (let->body (let->body nested-let)) ;; (occurs-free? 'c simple-let) ;; (preprocess simple-let) ;; (occurs-free? 'c (preprocess simple-let)) ;; (occurs-free? 'c (preprocess nested-let)) ;; ------------------------------------------------------------------------