我刚刚开始学习 Lisp,并且正在解决一些 Project Euler 问题。我被困在你将偶数斐波那契数相加低于最大数的那个。我尝试过的事情如下。我读过这篇文章,但我仍然不确定为什么我的方法都不起作用!
CL-USER> (defun sum-even-fibs (max)
(do ((curr 0 next)
(next 1 (+ curr next))
(sum 0 (if (evenp curr) (+ sum curr))))
((> max curr) sum)))
SUM-EVEN-FIBS
CL-USER> (sum-even-fibs 10)
0
CL-USER> (defun sum-even-fibs (max)
(let ((sum 0))
(do ((curr 0 next)
(next 1 (+ curr next)))
((> max curr))
(if (evenp curr)
(setq sum (+ sum curr))))
(format t "~d" sum)))
SUM-EVEN-FIBS
CL-USER> (sum-even-fibs 10)
0
NIL