<!-- @page { margin: 2cm } PRE.western { font-family: "DejaVu Sans Mono", monospace } PRE.cjk { font-family: "AR PL UKai CN", monospace } PRE.ctl { font-family: "DejaVu Sans Mono", monospace } P { margin-bottom: 0.21cm } -->
9.1 (1) #<procedure> (2) 34 (3) (yan etim ta lal) (4) #<procedure>: expects 1 argument, given 2: 10 15 9.2 (define second (lambda (stuff)(first(bf stuff)))) (define make-adder (lambda (x) (lambda(x)(+ num x)))) 9.3 the last word of a sentence or the last letter of a word 9.4 (define (who sent) (every (lambda (person)(se person sent)) '(pete roger john keith))) 9.5 (define (prepend-every wd sent) (every (lambda (p)(word wd p))sent)) 9.6 (define (sentence-version f) (lambda (y) (every f y))) 9.7 (define (l letter sent) (keep (lambda (p)(member? letter p))sent)) 9.8 (define (generate wd s) (every (lambda (p)(if(member? p s)p '_))wd)) 9.9 (define (c s1 s2) (keep (lambda (p)(member? p s2))s1)) 9.10 9.11 (define (unabbrev s1 s2) (every (lambda (x) (if(number? x) ((lambda (a s)(first((repeated bf (- a 1))s)))x s2) x)) s1)) 9.12 (define (first-last sent) (keep (lambda (wd) (equal? (last wd) (first wd))) sent)) 9.13 (define (compose f g) (lambda (x)(f(g x)))) 9.14 (define (s wd1 wd2 sent) (every (lambda (x) (if(equal? x wd2)wd1 x)) sent)) 9.15 (define (type-check f g) (lambda(x)(if(g x)(f x)#f))) 9.16 (define (aplize f) (lambda(sent)(if(number? sent)(f sent)(every f sent)))) 9.17 (define (keep f s) (every (lambda(x)(if(f x)x '()))s))