* Is this use of nreverse a good practice?
@ 2015-02-01 12:08 Marcin Borkowski
0 siblings, 0 replies; 2+ messages in thread
From: Marcin Borkowski @ 2015-02-01 12:08 UTC (permalink / raw)
To: Help Gnu Emacs mailing list
Hi there,
I'm writing a small function which should build a list and return it.
What I'm doing is more or less this:
(defun myfunc ()
(let ((list-var))
(while CONDITION
(DO-SOMETHING)
(push SOME-ELEMENT list-var))
(nreverse list-var)))
A more concrete example:
(defun reverse-range (n)
(let ((list-var))
(while (> n 0)
(push n list-var)
(decf n))
(nreverse list-var)))
(reverse-range 5)
⇒ (5 4 3 2 1)
Is this usage of `nreverse' correct? I guess it is, since list-var is
only a temporary variable and destructing it doesn't bother me.
However, I'm never sure I'm doing things right when using
nconc/nreverse, so I though I'd better ask...
TIA,
--
Marcin Borkowski
http://octd.wmi.amu.edu.pl/en/Marcin_Borkowski
Faculty of Mathematics and Computer Science
Adam Mickiewicz University
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Is this use of nreverse a good practice?
[not found] <mailman.19096.1422792521.1147.help-gnu-emacs@gnu.org>
@ 2015-02-01 13:02 ` Pascal J. Bourguignon
0 siblings, 0 replies; 2+ messages in thread
From: Pascal J. Bourguignon @ 2015-02-01 13:02 UTC (permalink / raw)
To: help-gnu-emacs
Marcin Borkowski <mbork@wmi.amu.edu.pl> writes:
> Hi there,
>
> I'm writing a small function which should build a list and return it.
> What I'm doing is more or less this:
>
> (defun myfunc ()
> (let ((list-var))
> (while CONDITION
> (DO-SOMETHING)
> (push SOME-ELEMENT list-var))
> (nreverse list-var)))
>
> A more concrete example:
>
> (defun reverse-range (n)
> (let ((list-var))
> (while (> n 0)
> (push n list-var)
> (decf n))
> (nreverse list-var)))
>
> (reverse-range 5)
>
> ⇒ (5 4 3 2 1)
>
> Is this usage of `nreverse' correct? I guess it is, since list-var is
> only a temporary variable and destructing it doesn't bother me.
> However, I'm never sure I'm doing things right when using
> nconc/nreverse, so I though I'd better ask...
Yes, this is THE use case for nreverse.
--
__Pascal Bourguignon__ http://www.informatimago.com/
“The factory of the future will have only two employees, a man and a
dog. The man will be there to feed the dog. The dog will be there to
keep the man from touching the equipment.” -- Carl Bass CEO Autodesk
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-02-01 13:02 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <mailman.19096.1422792521.1147.help-gnu-emacs@gnu.org>
2015-02-01 13:02 ` Is this use of nreverse a good practice? Pascal J. Bourguignon
2015-02-01 12:08 Marcin Borkowski
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.