[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Basic questions about elisp
From: |
Francis Moreau |
Subject: |
Re: Basic questions about elisp |
Date: |
Thu, 5 Nov 2009 06:29:03 -0800 (PST) |
User-agent: |
G2/1.0 |
On Nov 5, 1:57 pm, to...@tuxteam.de wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
>
>
> On Thu, Nov 05, 2009 at 03:13:32AM -0800, Francis Moreau wrote:
> > Hello,
>
> > I'm trying to learn elisp and have a couple of basic questions.
>
> > I'm iterating over a list using dotimes, but in the body of dotimes,
> > the list can mutate. For example I have:
>
> > (dolist (elt lst)
> > ;; some codes
> > (nconc lst '(2)))
>
> > This adds/appends a new element to 'lst' list. It looks like 'dotimes'
> > doesn't like it.
>
> > So I eventually wrote it like this
>
> > (setq i 0)
> > (while (< i (length lst))
> > ;; some codes
> > (x-nconc lst '(2))))
> > (setq i (1+ i)))
>
> > which is a bit ugly, is there another way to do that ?
>
> What about:
>
> (let ((l lst))
> (while l
> (do-something-with (car l))
> (setq l (cdr l))))
>
looks better but as David pointed out, appending something to a list
is quite expensive.
> This should be fine as long as you only append to lst. Dragons might
> emerge whenever you do more drastic things to it ;-)
>
> (and you would have to re-think things when Emacs Lisp becomes
> multi-threaded. It might work then and it might not).
>
Is this going to happen ?
Thanks
Re: Basic questions about elisp, tomas, 2009/11/05
Message not available
- Re: Basic questions about elisp,
Francis Moreau <=
Re: Basic questions about elisp, Pascal J. Bourguignon, 2009/11/05
- Re: Basic questions about elisp, David Kastrup, 2009/11/05
- Re: Basic questions about elisp, Francis Moreau, 2009/11/06
- Re: Basic questions about elisp, David Kastrup, 2009/11/06
- Re: Basic questions about elisp, Francis Moreau, 2009/11/06
- Re: Basic questions about elisp, Pascal J. Bourguignon, 2009/11/06
- Re: Basic questions about elisp, Francis Moreau, 2009/11/07
- Re: Basic questions about elisp, Pascal J. Bourguignon, 2009/11/07
- Re: Basic questions about elisp, tomas, 2009/11/08
- Message not available
- Re: Basic questions about elisp, Francis Moreau, 2009/11/09