;;;; ;;;;;;;; ;;;; Even Fibonacci numbers ;;;; Problem 2 ;;;; ;;;; 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, ... ;;;; By considering the terms in the Fibonacci sequence whose values do not exceed four million, ;;;; find the sum of the even-valued terms. ;;;; ;;;;;;;; (defun sum (xs) (if (null xs) 0 (+ (car xs) (sum (cdr xs))))) (defun fib (x y) (when (> x 4000000) (return-from fib ())) (cons x (fib y (+ x y)))) (defvar *fibs-below-4m* (fib 1 2)) (setf *fibs-below-4m* (remove-if-not #'evenp *fibs-below-4m*)) (print (sum *fibs-below-4m*))