(loop :for n :from 1
:for form = (read s nil s)
:until (eq form s)
:collect (make-instance 'foo :src form)
:until (and count (<= count n)))
Or if you like loops that look more like lisp than loop:
(iter (for form in-stream s)
(for n upfrom 0)
(until (and count (<= count n)))
(collect (make-instance 'foo :src form))))
| Sysop: | Amessyroom |
|---|---|
| Location: | Fayetteville, NC |
| Users: | 59 |
| Nodes: | 6 (0 / 6) |
| Uptime: | 21:01:08 |
| Calls: | 810 |
| Calls today: | 1 |
| Files: | 1,287 |
| D/L today: |
11 files (21,026K bytes) |
| Messages: | 194,568 |