As a sidenote I played around with ways of counting leaves
(defun count-leaves (list)
(loop for element in list summing
(if (listp element) (count-leaves element) 1)))
(defun count-leaves (element)
(typecase element
(list (reduce #'+ (mapcar #'count-leaves element)))
(atom 1)))
Here I clearly prefer the first as it is MUCH more efficient (and also slightly terser).
| Sysop: | Amessyroom |
|---|---|
| Location: | Fayetteville, NC |
| Users: | 54 |
| Nodes: | 6 (1 / 5) |
| Uptime: | 21:46:27 |
| Calls: | 742 |
| Files: | 1,218 |
| D/L today: |
6 files (8,794K bytes) |
| Messages: | 186,234 |
| Posted today: | 1 |