Deutsch   English   Français   Italiano  
<v60kh1$1jp18$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder8.news.weretis.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: "B. Pym" <No_spamming@noWhere_7073.org>
Newsgroups: comp.lang.lisp
Subject: Re: How do you insert declarations into loops?
Date: Tue, 2 Jul 2024 10:24:36 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 26
Message-ID: <v60kh1$1jp18$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Injection-Date: Tue, 02 Jul 2024 12:24:36 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="a5ce9095f63423d5c7f6062626603d29";
	logging-data="1696808"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/ETIN5J/UReXU7ZP1N32fu"
User-Agent: XanaNews/1.18.1.6
Cancel-Lock: sha1:tRXmBu3r/IVIuhYLU5jnkNSZMh0=
Bytes: 1775

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)