Answer:
A proper list is the empty list (), or is a pair whose cdr is a proper list.
_______ _______ _______ |__|__|-->|__|__|-->|__|_\| | | 5 | | _v_____ _v_____ _______ |__|__| |__|__|-->|__|_\| 1 2 3 4
(define (missing-filter a Types) (cond ((null? Types) '()) ((get a (car Types)) (missing-Filter a (cdr Types))) (else (cons (list a (car Types)) (missing-filter a (cdr Types)))) )) (define (no-fun L M) (apply append (map (lambda (x) (missing-filter x M)) L)))
Answer:
No-fun returns a list of key pair lists (l m) for which there is no entry in the table.
This is yesterday's topper.
(define (evens L) (if (null? L) '() (cons (car L) (odds (cdr L))))) (define (odds L) (if (null? L) '() (evens (cdr L)))) (define (reverse L) (cond ((or (null? L) (null? (cdr L))) L) ((even? (length L)) (interleave (reverse (odds L)) (reverse (evens L))) ) (else (interleave (reverse (evens L)) (reverse (odds L))) ) ))To complete the implementation, define (interleave L M) which takes two lists L and M It returns the list consisting of the first element of L followed by the first entry of M followed by the second entry of L, the second entry of M, etc. Assume that the lists L and M are of the same length or L has exactly one more entry than M.
For example, (interleave '(a b c) '(1 2)) yields (a 1 b 2 c), (interleave '(a b c) '(1 2 3)) yields (a 1 b 2 c 3), and (interleave (list 9) '()) yields (9).
Answer:
(define (interleave L M) (if (null? M) L (cons (car L) (interleave M (cdr L)))))
Answer:
(define h1 (new-vect 1/4 3/4)) (define h2 (new-vect 3/4 3/4)) (define v1 (new-vect 1/2 1/4)) (define v2 (new-vect 1/2 3/4)) (define tee (segments-painter (make-segment h1 h2) (make-segment v1 v2)))
(define this-painter (below (beside tee (flip-vert tee)) (box tee)))
Answer:
...Check it out with DrScheme
Answer:
(define (squash p) (transform-painter p (new-vect 0.0 0.0) (new-vect 1.0 0.0) (new-vect 0.0 0.1) ))
(define (make-mess upo bpo) (lambda (p1 p2) (below (upo p1) (bpo p1 p2)))) (define miasma (make-mess squash beside)) (define beauty (miasma tee X))Show what (beauty view) draws.
Answer:
...Check it out with DrScheme
(define (apply-generic-one-arg op arg) ((get op (list (type-tag arg))) (contents arg))) (define (name-A untagged-A) (cadr untagged-A)) (define (name-B untagged-B) (car untagged-B)) (define (name-C untagged-C) (caar untagged-B)) (put 'name '(A) name-A) (put 'name '(B) name-B) (put 'name '(C) name-C)Define a generic procedure (name tagged-record) which takes an object which is tagged with 'A or 'B or 'C and returns the name field out of that object. Use apply-generic-one-arg in your definition.
Answer:
(define (name tagged-record) (apply-generic-one-arg 'name tagged-record))