Recursion and Higher-order Functions - slide 15 : 35

Linear search in lists

Search criterias can be passed as predicates to search functions

;; A simple linear list search function.
;; Return the first element which satisfies the predicate pred.
;; If no such element is found, return #f.
(define (find-in-list pred lst)
(cond ((null? lst) #f)
((pred (car lst)) (car lst))
(else (find-in-list pred (cdr lst)))))

A sample interaction using find-in-list.

Linear string search

Index in list

Binary search in sorted vectors

Generating a C-style compare function

Higher-order functions in 'Functional Programming Languages'