Presentation is loading. Please wait.

Presentation is loading. Please wait.

Administrivia Make sure you have completed the Mid Semester Survey –Scheduled the week before Spring Break –this will be worth some points Reading is.

Similar presentations


Presentation on theme: "Administrivia Make sure you have completed the Mid Semester Survey –Scheduled the week before Spring Break –this will be worth some points Reading is."— Presentation transcript:

1

2 Administrivia Make sure you have completed the Mid Semester Survey –Scheduled the week before Spring Break –this will be worth some points Reading is important for this week: –Tic-tac-toe, chapter 10 in SS –Case study: change-making

3 March 14Higher order procedures March 21Spring Break March 28Tic-Tac-Toe – read SS chapter 10! Case Study: Making Change (tree-recursion) – in the reader! April 4Elections mini-project (#3) April 11Midterm #2 (during lecture) Extending sentences, words to lists (in lab) April 18Advanced list processing (recursion) Start on the big project April 25Work on the big project (check-off 1, 2) May 2Big project (check-off 3) May 9Big Project due!

4 Tic Tac Toe

5 Higher order function (HOFs) A HOF is a procedure that takes a procedure as an argument. There are three main ones that work with words and sentences: –every – do something to each element –keep – return only certain elements –accumulate – combine the elements

6 (define (square-all sent) (if (empty? sent) ‘() (se (square (first sent)) (square-all (bf sent)) )) (square-all ‘(1 2 3 4 5)) (every square ‘(1 2 3 4 5))

7 Write "my-keep" (my-keep odd? '(1 2 3 4 5))  (1 3 5)

8 Which HOFs would you use to write these? 1)capitalize-proper-names (c-p-n '(mr. smith goes to washington))  (mr. Smith goes to Washington) 2)count-if (count-if odd? '(1 2 3 4 5))  3 3)longest-word (longest-word '(I had fun on spring break))  spring 4)count-vowels-in-each (c-e-l '(I have forgotten everything))  (1 2 3 3) 5)squares-greater-than-100 (s-g-t-100 '(2 9 13 16 9 45)  (169 256 2025) 6)sum-of-squares (sos '(1 2 3 4 5 6 7)  30 7)successive-concatenation (sc '(a b c d e)  (a ab abc abcd abcde)

9 Write! Successive-concatenation (sc '(a b c d e))  (a ab abc abcd abcde) (sc '(the big red barn))  (the thebig thebigred thebigredbarn) (define (sc sent) (accumulate (lambda ?? ) sent))

10 HOF: Base cases can be confusing What does (every square '()) return? –(every square "") –(every square "12345") What about (keep odd? '()) –(keep odd? "") How about (accumulate + ' ()) –(accumulate + "") –(accumulate * '()) –(accumulate word '(a)) –(accumulate + '(a) –(accumulate word '(a b)) –(accumulate + '(a b))

11 lambda "lambda" is a special form that lets you make a function: (lambda (param1 param2 …) statement1 statement2 ) (lambda (x) (* x x)  [a function] (every (lambda (x) (* x x) '(1 2 3 4))  (1 4 9 16)

12 Can a function defined by a lambda be recursive? (lambda (sent) (if (empty? sent) '() (se (square (first sent)) (???? (bf sent)))))

13 When do you NEED lambda? 1.When you need the context (add-suffix '-is-great '(nate sam mary))  (nate-is-great sam-is-great mary-is-great) 2.When you need to make a function on the fly

14 Procedures that make procedures Generally, name procedures that create procedures "make-XXX" (make-bookends 'o)  #[closure arglist=(inner-wd) d7d0e0] ((make-bookends 'o) 'hi)  ohio ((make-bookends 'to) 'ron)  toronto (define tom-bookend (make-bookends 'tom)) (tom-bookends "")  tomtom

15 Ha! Make a procedure that returns a procedure that takes a number X and returns a procedure that takes a number and adds X to it. –Whew!


Download ppt "Administrivia Make sure you have completed the Mid Semester Survey –Scheduled the week before Spring Break –this will be worth some points Reading is."

Similar presentations


Ads by Google