+;; John Paulett - June 8, 2009

+;; Each new term in the Fibonacci sequence is generated by adding the previous

+;; two terms. By starting with 1 and 2, the first 10 terms will be:

+;; 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...

+;; Find the sum of all the even-valued terms in the sequence which do not

+;(defn fib [maxval coll]

+(use '[clojure.contrib.lazy-seqs :only (fibs)])

+(defn sum-even-fibs [max]

+ (reduce + (for [i fibs :while (<= i max) :when (even? i)] i)))

+(assert (= 2 (sum-even-fibs 2)))

+(assert (= 44 (sum-even-fibs 89)))

+(println (sum-even-fibs 4000000))