CS 330 Lecture 33 – Higher-order
April 25, 2012 by Chris Johnson. Filed under
Deprecated: Creation of dynamic property WP_Term::$cat_ID is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 378
Deprecated: Creation of dynamic property WP_Term::$category_count is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 379
Deprecated: Creation of dynamic property WP_Term::$category_description is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 380
Deprecated: Creation of dynamic property WP_Term::$cat_name is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 381
Deprecated: Creation of dynamic property WP_Term::$category_nicename is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 382
Deprecated: Creation of dynamic property WP_Term::$category_parent is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 383
Deprecated: Creation of dynamic property WP_Term::$cat_ID is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 378
Deprecated: Creation of dynamic property WP_Term::$category_count is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 379
Deprecated: Creation of dynamic property WP_Term::$category_description is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 380
Deprecated: Creation of dynamic property WP_Term::$cat_name is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 381
Deprecated: Creation of dynamic property WP_Term::$category_nicename is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 382
Deprecated: Creation of dynamic property WP_Term::$category_parent is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 383
Deprecated: Creation of dynamic property WP_Term::$cat_ID is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 378
Deprecated: Creation of dynamic property WP_Term::$category_count is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 379
Deprecated: Creation of dynamic property WP_Term::$category_description is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 380
Deprecated: Creation of dynamic property WP_Term::$cat_name is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 381
Deprecated: Creation of dynamic property WP_Term::$category_nicename is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 382
Deprecated: Creation of dynamic property WP_Term::$category_parent is deprecated in /var/www/twodee/blog/wp-includes/category.php on line 383
cs330, lectures, spring 2012.
Agenda
- program this
- double, square, cosine
- higher-order functions
- map and filter
- variable-length argument lists
- symbolic differentiation
TODO
Program This
Choose one:
- Write contains, which takes two arguments: a list and an atom. Return true if the list contains the atom.
- Write nth-element, which returns the the nth-element (starting at 0) of the list.
Code
hof.ss
(define first car)
(define rest cdr)
(define contains
(lambda (l item)
(cond
((null? l) #f)
((= (first l) item) #t)
(else (contains (rest l) item)))))
(define nth-element
(lambda (l index)
(cond
((null? l) '())
((= index 0) (first l))
(else (nth-element (rest l) (- index 1))))))
(define double
(lambda (l)
(cond
((null? l) '())
(else (cons (* 2 (first l)) (double (rest l)))))))
(define lsin
(lambda (l)
(cond
((null? l) '())
(else (cons (sin (first l)) (lsin (rest l)))))))
(define square
(lambda (l)
(cond
((null? l) '())
(else (cons (* (first l) (first l)) (square (rest l)))))))
(define mymap
(lambda (f l)
(cond
((null? l) '())
(else (cons (f (first l)) (mymap f (rest l)))))))
(define differentiate
(lambda (f)
(cond
((number? f) 0)
((equal? 'x f) 1)
((equal? '+ (first f))
(list '+
(differentiate (nth-element f 1))
(differentiate (nth-element f 2))))
((equal? '* (first f))
(list '+
(list '* (nth-element f 1) (differentiate (nth-element f 2)))
(list '* (nth-element f 2) (differentiate (nth-element f 1)))))
(else (display 'Idunno)))))
;(define (contains l item)
Haiku
Gamification.
Dress up blah with achievements.
Like matching parens.