#lang racket #| (define n 17) (define (f x) (+ x n)) (define (x f) (let ((x (f x))) (x f))) |# ;;; For PS5 Problem 1a (define (f a b) (if (< a b) b (+ (let {[f (λ (b c) (f c (- b (g a))))] [g (λ (a) (g (+ a b)))] [a (let* {[a (f a (- b 1))] [b (f a b)] [f (λ (a c) (* a (+ b c)))]} (f (g a) b))] [b (+ a b)]} (f (g b) a)) (f (g a) (- b 1))))) (define (g a) (letrec {[f (λ (b c) (g (- a (+ b c))))] [g (λ (a) (if (< a b) a (f a b)))]} (define (g a) (* a c)) (define c (+ a b)) (f b (g c)))) (define (h b) (+ a b)) (define a 17) (define b (h a))