help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: `append' vs. `nconc'


From: Emanuel Berg
Subject: Re: `append' vs. `nconc'
Date: Thu, 31 Dec 2015 05:00:07 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

"Pascal J. Bourguignon" <pjb@informatimago.com>
writes:

>> OK, so for example this: (setq
>> completion-ignored-extensions (append
>> completion-ignored-extensions '(".bcf" ".run.xml"))
>> ) Is better as: (nconc completion-ignored-extensions
>> (list ".bcf" ".run.xml")) ?
>
> No. You should never use nconc only for effect (just
> like delete, etc).

What do you mean by "effect"?

The reason I thought it fitting was the definitions of
`append' and `ncons'. Here I want to change
`completion-ignored-extensions'. `append' doesn't
change it, which is why the assignment with `setq' was
there. If it can't be removed (well, in the form of
`setf'), there is still the gain of not creating the
list unnecessarily, which in this case is a matter of
principle but in other cases (with long lists) is
a performance bottleneck?

> Always re-assign the modified list:
>
>     (setf completion-ignored-extensions (nconc
> completion-ignored-extensions (list ".bcf"
> ".run.xml")))
>
> otherwise it will break when the place is bound to
> nil. (nil is a symbol and cannot be mutated into
> a cons cell!).

?

What place is bound to nil, when?

-- 
underground experts united
http://user.it.uu.se/~embe8573




reply via email to

[Prev in Thread] Current Thread [Next in Thread]