
Untitled
By: a guest on
Apr 26th, 2012 | syntax:
None | size: 1.10 KB | hits: 18 | expires: Never
search through nested list in scheme to find a number
((1 2) (2 3) (3 4) (3 5) (4 5))
(1 2)
> (flatten '((8) 4 ((7 4) 5) ((())) (((6))) 7 2 ()))
(8 4 7 4 5 6 7 2)
(define data '((1 2)(2 3)(3 4)(3 5)(4 5)))
(solution data 3)
-> '((3 4) (3 5))
(define data '((1 2)(2 3)(3 4)(3 5)(4 5)))
(solution data 1)
-> '((1 2))
(define (check-pair num p)
(cond
[(= (first p) num) #t]
[else #f]))
(define (check-pair num)
(lambda (p)
(cond
[(= (first p) num) #t]
[else #f])))
(define (check-pair num)
(lambda (p)
(cond
[(= (first p) num) #t]
[else #f])))
(define (solution list num)
(local
((define check-pair-by-num (check-pair num)))
(filter check-pair-by-num list)))
(define data '((1 2)(2 3)(3 4)(3 5)(4 5)))
(solution data 1)
(define (solve lst num)
(cond
[(null? lst) null]
[(cons? (first lst)) (solve (first lst) num)]
[(member num lst) (cons lst (solve (rest lst) num))]
[#t (solve (rest lst) num)]))
(find contains-1? '((1 2)(2 3)(3 4)(5 6)))
(member 1 '(1 2)) => #t
(member 1 '(3 4)) => #f