
Untitled
By: a guest on
Aug 22nd, 2012 | syntax:
None | size: 0.78 KB | hits: 5 | expires: Never
(define (make-object name) (list 'name name))
(define object->name cadr)
(define names (list "john" "paul" "george" "ringo"))
(define objects (map make-object names))
(define (contains? objects names)
(define (names-contains? name)
(let loop ((names names))
(cond
((null? names) #f)
((string=? name (car names)) #t)
(else (loop (cdr names))))))
(let loop ((object-names (map object->name objects)))
(cond
((null? object-names)
#t)
((not (names-contains? (car object-names)))
#f)
(else (loop (cdr object-names))))))
(define (p message result)
(display message)
(display result)
(newline))
(p "This test passed: " (contains? objects names))
(p "This test passed: " (not (contains? (cons (make-object "duncan") objects) names)))