MathGroup Archive 1995

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

Search the Archive

Re: Positive[a] = True ???


Frank Domokos <domokos at chaph.usc.edu>
in [mg2518] Positive[a] = True ???
asks about the following kind of response

IN>> Positive[a] = True;
OUT>> Set::write: Tag Positive in Positive[a] is Protected.

Frank,

Most system functions, like Positive, are protected (have the  
attribute Protected) to avoid unintentional changes. You cannot make  
a definition for them ("tagged" by them) without unprotecting them  
(see later).

Here are some ways round this for your example

1.Tag your definition with a instead of f:

   a. by using UpSet (^=) instead of Set (=):

      Positive[a]^= True;

   or, more specifically,

   b. by using TagSet:

      a/:Positive[a] = True;

Or

2. Unprotect Positive to allow definitions to be tagged by it:

   Unprotect[Positive];

   Positive[a] = True;

 (eventually re-protecting Positive)


Of course if a is protected or is an expression with a protected  
head then you will need to unprotect either Positive or a or the  
head of a.

Allan Hayes
hay at haystack.demon.co.uk








  • Prev by Date: Re: Logic Problems
  • Next by Date: Re: Problems with high-dimensional lists
  • Previous by thread: Re: Positive[a] = True ???
  • Next by thread: RE: Positive[a] = True ???