How do you insert declarations into loops?
Example: This function loops over a list of associations
collecting the cdrs.
(defun list-cdrs (list)
(loop for (unwanted-var . wanted-var) in list
collect wanted-var))
When I compile list-cdrs, I get an "unused lexical variable, UNWANTED-VAR" message (this is fine.). Normally, if I wanted to inhibit this
warning I would stick a (declare (ignore unwanted-var)) in the
beginning of the function body immediately following the declaration.
It doesn't seem that you can do this using loop.
The solution is not to introduce an ignore declartion, but instead to
use a hack in the destructuring pattern matcher:
(defun list-cdrs (list)
(loop for (NIL . wanted-var) in list
collect wanted-var))
How do you insert declarations into loops?
Example: This function loops over a list of associations
collecting the cdrs.
(defun list-cdrs (list)
(loop for (unwanted-var . wanted-var) in list
collect wanted-var))
When I compile list-cdrs, I get an "unused lexical variable, UNWANTED-VAR"
message (this is fine.). Normally, if I wanted to inhibit this
warning I would stick a (declare (ignore unwanted-var)) in the
beginning of the function body immediately following the declaration.
It doesn't seem that you can do this using loop.
The solution is not to introduce an ignore declartion, but instead to
use a hack in the destructuring pattern matcher:
(defun list-cdrs (list)
(loop for (NIL . wanted-var) in list
collect wanted-var))
Scheme
(map cdr '((a . 2) (b . 3)))
'(2 3)
| Sysop: | Amessyroom |
|---|---|
| Location: | Fayetteville, NC |
| Users: | 65 |
| Nodes: | 6 (0 / 6) |
| Uptime: | 05:22:38 |
| Calls: | 862 |
| Files: | 1,311 |
| D/L today: |
921 files (14,318M bytes) |
| Messages: | 264,603 |