Pascal Bourguignon wrote:
(defun sum (list)
(loop :for x :in list :sum x))
Gauche Scheme
(define (sum lst) (fold + 0 lst))
(sum '(1 3 5 7 9))
===>
25
Of course, since LOOP is a higher level abstraction. You should
compare with this iterative form:
(defun sum (list)
(do ((current list (cdr current))
(sum 0))
((null current) sum)
(setf sum (+ sum (car current)))))
(defun sum (list)
(loop :for x :in list :sum x))
| Sysop: | Keyop |
|---|---|
| Location: | Huddersfield, West Yorkshire, UK |
| Users: | 796 |
| Nodes: | 16 (0 / 16) |
| Uptime: | 169:31:45 |
| Calls: | 13,195 |
| Calls today: | 2 |
| Files: | 15,489 |
| Messages: | 6,579,256 |