Re: How do you insert declarations into loops?

Liste des GroupesRevenir à cl lisp 
Sujet : Re: How do you insert declarations into loops?
De : No_spamming (at) *nospam* noWhere_7073.org (B. Pym)
Groupes : comp.lang.lisp
Date : 02. Jul 2024, 12:24:36
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v60kh1$1jp18$1@dont-email.me>
User-Agent : XanaNews/1.18.1.6
Thomas A. Russ wrote:

 > 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))


(map cdr '((a . 2) (b . 3)))
 ===>
(2 3)

Date Sujet#  Auteur
2 Jul 24 o Re: How do you insert declarations into loops?1B. Pym

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal