;; The first three lines of this file were inserted by DrRacket. They record metadata ;; about the language level of this file in a form that our tools can easily process. #reader(lib "htdp-intermediate-lambda-reader.ss" "lang")((modname week6_w_full) (read-case-sensitive #t) (teachpacks ()) (htdp-settings #(#t constructor repeating-decimal #f #t none #f ()))) ; count-odds : list-of-numbers -> number ; returns number of odd numbers in list (define (count-odds lon) (foldr add-if-odd 0 lon) ) ; (cond [(empty? lon) 0] ; [else (cond [(odd? (first lon)) (+ 1 (count-odds (rest lon)))] ; [else (count-odds (rest lon))])])) (define (add-if-odd x y) (cond [(odd? x) (+ 1 y)] [else y])) (check-expect (add-if-odd 1 7) 8) (check-expect (count-odds (list 1 2 3 4)) 2) (check-expect (count-odds empty) 0) (foldr + 0 (list 1 2 3 4)) (define (add3toeach lon) (map (lambda (x) (+ x 3)) lon)) (check-expect (add3toeach (list 1 2 3 4)) (list 4 5 6 7)) ;((lambda (x y z) (* x (+ y 3) (sqrt z))) 2 3 4) ; adder : number -> (number -> number) (define adder (lambda (x) (lambda (y) (+ x y)))) (define xx (adder 3)) (define delta 0.000001) ; deriv : (number -> number) -> (number -> number) ; returns the derivative of a function (define (deriv f) (lambda (x) (/ (- (f (+ x delta)) (f (- x delta))) (* 2 delta) ))) ;(define (sqr n) (* n n)) (define 2x (deriv sqr)) (define (cube n) (* n n n)) (check-expect (2x 10) 20)