The function (subset pred lst ) produces a list of elements of a given list that satisfy the predicate pred.
(subset number? '(a 1 b 2 3 c 4)) = (1 2 3 4)(subset symbol? '(a 1 b 2 3 c 4)) = (a b c)
(define (subset pred lst)
(if (pair? lst)
(if (pred (car lst))
(cons (car lst)
(subset pred (cdr lst)))
(subset pred (cdr lst)))
'() ) )
Note that in subset the predicate is passed in as the argument pred, and pred is used as a function. This works because the name pred is bound to the function definition that is specified.
Contents    Page-10    Prev    Next    Page+10    Index