[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Reverse pop, return value
From: |
Barry Margolin |
Subject: |
Re: Reverse pop, return value |
Date: |
Tue, 17 Nov 2009 16:34:53 -0500 |
User-agent: |
MT-NewsWatcher/3.5.3b3 (Intel Mac OS X) |
In article
<9af6462e-4a2e-4325-b11d-9d8a6c2686b5@r24g2000yqd.googlegroups.com>,
LanX <lanx.perl@googlemail.com> wrote:
> Thanx Lennart!
>
> Thats what I was looking for! 8)
>
> ---------------
> (defun rpop (LIST)
> "reverse pop"
> (prog1
> (car (last LIST))
> (nbutlast LIST 1)
> )
> )
> --------------
>
> bye
> rolf
As I mentioned in the "remove last element in a list" thread, this won't
work when the list gets down to 1 element. nbutlast works by changing
the cdr of the 2nd-to-last cons cell in the list to point to nil. But
if there's only 1 element, there's no 2nd-to-last cons cell to modify.
You need to assign to the original variable, and this can only be done
using a macro (that's why push and pop are macros).
--
Barry Margolin, barmar@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
*** PLEASE don't copy me on replies, I'll read them in the group ***
- Remove last element in a list, Nordlöw, 2009/11/17
- Re: Remove last element in a list, LanX, 2009/11/17
- Reverse pop, return value, LanX, 2009/11/17
- Re: Reverse pop, return value, Lennart Borgman, 2009/11/17
- Message not available
- Re: Reverse pop, return value, LanX, 2009/11/17
- Re: Reverse pop, return value,
Barry Margolin <=
- Re: Reverse pop, return value, LanX, 2009/11/17
- Re: Reverse pop, return value, Barry Margolin, 2009/11/19
- Re: Reverse pop, return value, David Kastrup, 2009/11/17
- Re: Reverse pop, return value, LanX, 2009/11/17
Re: Remove last element in a list, Barry Margolin, 2009/11/17