Functional Problem Solving (CSC 151 2015S) : Outlines
Primary: [Front Door] [Schedule] - [Academic Honesty] [Disabilities] [Email] - [FAQ] [Teaching & Learning] [Grading] [Taking Notes] [Rubric] - [Calendar]
Current: [Assignment] [EBoard am] [EBoard pm] [Lab] [Outline] [Reading]
Sections: [Assignments] [EBoards am] [EBoards pm] [Labs] [Outlines] [Readings] - [Examples] [Handouts]
Reference: [Setup] [VM] [Errors] - [Functions A-Z] [Functions By Topic] - [Racket] [Scheme Report (R5RS)] [R6RS] [TSPL4]
Related Courses: [Davis (2013F)] [Rebelsky (2014F)] [Weinman (2014F)]
Misc: [Submit Questions] - [SamR] [Glimmer Labs] [CS@Grinnell] [Grinnell] - [Book Office Hours] - [Issue Tracker (Course)]
Held: Wednesday, 4 March 2015
Back to Outline 25 - Recursion Basics, Continued. On to Outline 27 - Characters and Strings.
Summary
We revisit preconditions. We then consider programming techniques for ensuring that preconditions are met.
Related Pages
Overview
error procedure.Administrivia
Here are some of the ways that students wrote irgb-tally-dark. Which
do you prefer?
(define irgb-tally-dark
(lambda (lst)
(cond
[(null? lst) 0]
[(irgb-dark? (car lst))
(+ 1 (irgb-tally-dark (cdr lst)))]
[else
(irgb-tally-dark (cdr lst))])))
(define irgb-tally-dark
(lambda (lst)
(if (null? lst)
0
(if (irgb-dark? (car lst))
(+ 1 (irgb-tally-dark (cdr lst)))
(irgb-tally-dark (cdr lst))))))
(define irgb-tally-dark
(lambda (lst)
(if (null? lst)
0
(+ (if (irgb-dark? (car lst)) 1 0)
(irgb-tally-dark (cdr lst))))))
(define irgb-tally-dark
(lambda (lst)
(- (length lst) (length (irgb-filter-out-dark lst)))))
(define irgb-tally-dark
(lambda (lst)
(length (irgb-select-dark lst))))
(define irgb-select-dark
(lambda (lst)
(cond
[(null? lst) null]
[(irgb-dark? (car lst))
(cons (car lst)
(irgb-select-dark (cdr lst)))]
[else
(irgb-select-dark (cdr lst))])))
(define irgb-tally-dark
(lambda (lst)
(sum (map (lambda (val) (if (irgb-dark? val) 1 0))))))
error or throw
error