MathGroup Archive 2006

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

Search the Archive

Re: Unprotecting "I"

  • To: mathgroup at smc.vnet.net
  • Subject: [mg64817] Re: Unprotecting "I"
  • From: ted.ersek at tqci.net
  • Date: Sat, 4 Mar 2006 02:35:33 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

A user wanted to Unprotect the symbol I so they could use it for something
other than Sqrt[-1]. That can't be done because I has the Locked
attribute. Very few symbols have that attribute. This is only for the ones
WRI wants to make sure you don't change, but there is still a way to get
around it! Use the following:

In[1]:=
  $PreRead=(#/."I"->"VariableI")&;
  MakeBoxes[VariableI, form:(StandardForm|TraditionalForm) ]:="I"

I think you can then use I just like you use {x, y, t, ...}.
Just beware that this code will make it so that (I) and (VariableI)
are one and the same.

Then if you want to use the complex number type
  [Esc]ii[Esc]   (where [Esc] means press the Esc key.)

In the event you are using $PreRead for something else, you can probably
combine the my $PreRead code with yours.

I think it' possible to get the same result with MakeExpression
definitions instead of an assignment to $PreRead, but I had trouble
getting it to work.

Regards,
   Ted Ersek





  • Prev by Date: Multiple application of LinearFilter
  • Next by Date: Re: Help: running external program on Mac OS X
  • Previous by thread: Unprotecting "I"
  • Next by thread: Re: Unprotecting "I"