#lang racket (define x 3) (define (fact n) (if (= n 0) 1 (* n (fact (- n 1))))) (define fact2 (lambda (x) (if (= x 0) 1 (* x (fact (- x 1)))))) (define cube (lambda (x) (* x x x))) (define (safe-div3 a b c) (if (= b 0) 0 (if (= c 0) 0 (/ (/ a b) c)))) (define (pow x y) (if (= y 0) 1 (* x (pow x (- y 1))))) (define pow_bananas (lambda (x y) (if (= y 0) 1 (* x (pow_bananas x (- y 1)))))) (define pow2 (lambda (x) (lambda (y) (if (= y 0) 1 (* x ((pow2 x) (- y 1))))))) (define (fib n) (if (<= n 1) 1 (+ (fib (- n 1)) (fib (- n 2))))) (define (fib2 n) (define (loop f1 f2 n) (if (<= n 0) f2 (loop (+ f1 f2) f1 (- n 1)))) (loop 1 1 n)) (define (range n) (if (= n 0) (list 0) (cons n (range (- n 1))))) (define my-map (lambda (f) (lambda (xs) (if (null? xs) null (cons (f (car xs)) ((my-map f) (cdr xs)))))))