Raffael Cavallaro wrote:
Hi, perhaps someone can help me translate my Python version?
(defun fib (x)
(do ((a 0 b) ;; do loop variable a is initially 0, then b
(b 1 (+ a b)) ;;loop variable b is initially 1 then a + b
(i 1 (1+ i))) ;;loop index incremented by 1 each go round
((> i x) a))) ;;termination condition - when index passes x stop
;; and return a
(defun fib-evens (limit)
"find the sum of all the even fibonacci numbers less than 1 million"
(loop for i from 1 ;;loop index starts at 1 implicitly incremented by 1
as current = (fib i) ;;compute fib of the current index
while (< current limit) ;;stop if index exceeds limit
when (evenp current) sum current)) ;;sum all the even fibs and
return this sum
CL-USER> (time (fib-evens 1000000)) ;; time the sum of all the even
fibs less than a million
Evaluation took:
0.0 seconds of real time
8.e-6 seconds of user run time ;;; took about one
onehundredthousandth of a second
1.e-6 seconds of system run time
0 page faults and
0 bytes consed.
1089154 ;; here's your answer
| Sysop: | Amessyroom |
|---|---|
| Location: | Fayetteville, NC |
| Users: | 65 |
| Nodes: | 6 (0 / 6) |
| Uptime: | 02:11:04 |
| Calls: | 862 |
| Files: | 1,311 |
| D/L today: |
10 files (20,373K bytes) |
| Messages: | 264,322 |