MathGroup Archive 1999

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

Search the Archive

Re: MyPrependTo


Hi Will,

the strange stuff is due to your strange use of evaluation.
If you what to use Set[] keep in mind that it has the attribute
HoldFirst[]. You can only  assign a value to a symbol
(or assign lists of values to lists of symbols, or parts of a list to a
value)

I append the working version of definitions for push and pop.

SetAttributes[StackPush,HoldFirst]
SetAttributes[StackPop,HoldAll]

StackPush[someStack_Symbol,elt_]:=(Set[someStack,Prepend[someStack,elt]];
    Null)

StackPop[e_Symbol]:=Module[{head},head=First[e];e=Rest[e];head]

I strongly recommend that you take a brake in Mathematica programming
and spend some winter evenings with the excelent book 
"Programming in Mathematica" by Roman Maeder Third Edition.

Hope that helps
  Jens

Will Self wrote:
> 
> In trying to create my own version of PrependTo, I ran into some strange
> stuff that I don't understand.  I am calling my function "push".  Please
> look at the session below and explain these mysterious happenings.
> It seems clear that there is more than one symbol e kicking around,
> but I can't make head or tail of it.  See also my next message for
> the larger context.
> 
> In[2]:=
----  snip snap snip snap  ---


  • Prev by Date: Re: MyPrependTo
  • Next by Date: Re: List manipulation question
  • Previous by thread: Re: MyPrependTo
  • Next by thread: Re: MyPrependTo