#lang racket ;;; Exercise 01 (define (10^len n) (if (= n 0) 1 (* (10^len (quotient n 10)) 10))) (define (substr? a b) (define (calc-iter b comp) (cond [(= b 0) #f] [(= (remainder (- b a) comp) 0) #t] [else (calc-iter (quotient b 10) comp)])) (calc-iter b (10^len a))) (substr? 123 5123783) ;;; Exercise 02 (define (my-identity x) x) (define (my-compose f g) (lambda (x) (f (g x)))) (define (my-negate p?) (not p?)) (define (my-curry f x) ((curry f) x)) ;;; Exercise 03 (define (difference F a b) (- (F a) (F b))) ;;; Exercise 04 (define f (lambda (x) (* 2 x))) ;;; Exercise 05 (define (derive f eps) (lambda (x) (/ (- (f (+ x eps)) (f x)) eps)))