;; The first three lines of this file were inserted by DrScheme. 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 red_pattern) (read-case-sensitive #t) (teachpacks ((lib "master.ss" "teachpack" "htdp") (lib "draw.ss" "teachpack" "htdp") (lib "gui.ss" "teachpack" "htdp"))) (htdp-settings #(#t constructor repeating-decimal #f #t none #f ((lib "master.ss" "teachpack" "htdp") (lib "draw.ss" "teachpack" "htdp") (lib "gui.ss" "teachpack" "htdp"))))) (define-struct mypair (left right)) ;; Write a function that, given a list of mypairs of numbers, creates a list of ;; sums of left and right (define lop (list (make-mypair 2 3) (make-mypair 5 6) (make-mypair 3 7))) (define (sum-pair lop) (cond [(empty? lop) empty] [else (cons (+ (mypair-left (first lop)) (mypair-right (first lop))) (sum-pair (rest lop)))] ) ) (sum-pair lop) ;; expected (list 5 11 10) (define (number-elements nlol) (cond [(empty? nlol) 0] [(number? (first nlol)) (+ 1 (number-elements (rest nlol)))] [else (+ (number-elements (first nlol)) (number-elements (rest nlol)))] ) ) (number-elements (list 1 2 (list 4 5) (list 3 (list 6)))) ;; expected value 6 (start 400 400) (define (draw-square x y side min-side color) (cond [(< side min-side) true] [else (and (draw-solid-rect (make-posn x y) (/ side 2) (/ side 2) color) (draw-solid-rect (make-posn (+ x (/ side 2)) (+ y (/ side 2))) (/ side 2) (/ side 2) color) (draw-square x (+ y (/ side 2)) (/ side 2) min-side color) (draw-square (+ x (/ side 2)) y (/ side 2) min-side color))] ) ) (draw-square 0 0 256 20 'red)