All pastes #188176 Raw Edit

Mine

public text v1 · immutable
·published 2006-10-01 20:55 UTC
rendered paste body
; question 2

;; count-the-loot : list -> number
;; returns the total taxes paid by a given
;; payroll list
(define (count-the-loot pyrl)
  (cond
    [(empty? pyrl) 0]
    [else (+ (tr-amount (sr-to-tr (first pyrl))) (count-the-loot (rest pyrl)))]))

;; election-year-giveaway : list number -> list
;; returns a payroll with all salaries increased
;; by a given percentage from a given payroll list
(define (election-year-giveaway pyrl boost)
  (cond
    [(empty? pyrl) (cons empty)]
    [else (cons (sr-name (first pyrl)) 
                (* (sr-salary (first pyrl)) (+ 1 (/ boost 100))) 
                (election-year-giveaway (rest pyrl) boost))]))

;; eat-the-rich : list -> list
;; returns a payroll list with all those people
;; earning $120,000 or more removed from a 
;; given payroll list
(define (eat-the-rich pyrl)
  (cond
    [(empty? pyrl) (cons empty)]
    [else (cond
            [(< (sr-salary (first pyrl)) 120000)
             (cons (sr-name (first pyrl)) 
                   (sr-salary (first pyrl)) 
                   (eat-the-rich (rest pyrl)))]
            [else (eat-the-rich (rest pyrl))])]))

;; question 3

;; on-line : number number list -> list
;; returns a list of posns whose x and y
;; values satisfy the equation y=ax+b
;; from given numbers a and b and a
;; given list of posns
(define (on-line a b plist)
  (cond
    [(empty? plist) (cons empty)]
    [else (cond
            [(= (posn-y (first plist)) (+ (* a (posn-x (first plist))) b))
             (cons (first plist) (on-line a b (rest plist)))]
            [else (on-line a b (rest plist))])]))