let rec find f l = match l with h::t -> if f h then h else find f t | [] -> raise Not_found;;