MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: opposite of AppendTo

  • To: mathgroup at
  • Subject: [mg124320] Re: opposite of AppendTo
  • From: "Nasser M. Abbasi" <nma at>
  • Date: Tue, 17 Jan 2012 03:19:58 -0500 (EST)
  • Delivered-to:
  • References: <jf13lb$5ma$>
  • Reply-to: nma at

On 1/16/2012 6:02 AM, burke wrote:
> AppendTo[s,e] appends "e" to "s" and then RESETS "s". How does one
> delete or remove an element "e" from a list "s" and then RESET "s"?
> The _reset_ is my problem.  I want to be able to add and delete
> elements of a list (a list of graphical elements with very low
> opacity).  I can "appendto" the list at will but am unable to delete
> elements (using Delete, DeleteCases, Except, Select, etc.). Deleting
> "e" from "s" is easy enough, but resetting "s" seems impossible.
> Help!!

I do not know if there is such a command now, looked and can't see
one (this does not mean there is not one).

But it is possible to write your own myDelete function which does
the resetting and it would look the same as the AppendTo. You just
need to pass the list to the function myDelete by reference to do this,
but it will now work by resetting the list.

Like this

myDelete[from_, item_] := Module[{loc},
    loc = Position[from, item];
    If[Not[loc === {}], from = Delete[from, loc]]

Now you can use it like this:

s = {1, 2};
e = 2;
myDelete[Unevaluated@s, e];
===> {1}

s = {1, 2, 3, 2};
e = 2;
myDelete[Unevaluated@s, e];
===> {1, 3}

s = {1, 2, {3}, 2};
e = {3};
myDelete[Unevaluated@s, e];
===>{1, 2, 2}

and so on.

So, you just need to do
1. replace Delete with myDelete
2. add Unevaluated@ to the list

use at your own risk. Not tested very well. Not responsible for
any damage caused by the use of this myDelete function.


  • Prev by Date: Re: How to easily set up all coefficients to be positive in Solving an integer equation?
  • Next by Date: Re: opposite of AppendTo
  • Previous by thread: Re: opposite of AppendTo
  • Next by thread: Re: opposite of AppendTo