Re: Maxima ref. manual (object types)



I'm continuing to think about this...

There are, I think, two or more kinds of properties.

z:x+y$ /* call this ZedOne */
block([z:3], /*call this ZedTwo */
   declare(z,fixnum);   /* pertains only to ZedTwo ???*/
   ....
   assume(z > 0)  /*pertains to ZedOne and ZedTwo ??? */
   matchdeclare(z, true) /*pertains to neither, really. */

I agree with Robert that, to the user, these things may
all be on the same level objects in class 1, 2, BUT .. also 8,9.

sin, cos, solve, if, +, *, block.

It may not be well known, but I think that all forms are
available in a prefix version.  That is  "+"(a,b,c,d); is
perfectly acceptable, as is  if(a,b,c).

RJf







Robert Dodier wrote:
> Hi Vadim,
> 
> Thanks for taking the time to work out this proposal.
> I'm in agreement on the whole & I just have a few quibbles.
> 
> About the object types --
> 
> 
>>1. Functions  - functions (sin, cos, bessel...)
>>2. Special forms - similar to functions but handle arguments in some
>>   special nonstandard way  (e.g. declare)
>>3. Symbols - %e, %i, %pi, inf ...
>>4. Option variables - variables whose value control Maxima behavior
>>   (e.g. logexpand).
>>5. System variables - usually read only variables which contain
>>information
>>   about current Maxima state (e.g. functions).
>>6. Properties - named attributes of symbols.
>>7. Keywords - optional argument to function or special form which
>>   modifies its behavior.
>>8. Keyword forms - like keyword but more complicated in structure
>>than
>>9. Operators - operators.  Can be further subdivided into prefix,
>>   infix and postfix operators.
>>10. Packages - packages in share.
> 
> 
> I'm inclined to lump together 1 & 2 -- I guess I don't see a
> strong reason to consider declare, ev, etc as something other
> than functions. Maybe 3 can be called "constants"? I think
> "keyword" will be interpreted as "reserved word" (while, for,
> then, etc) so maybe 7 should be called "special arguments" or
> something. Or maybe each such symbol should just be discussed
> in the context of the functions it applies to, since functions
> can treat a symbol in different ways, so 7 could be omitted.
> Same with 8. There aren't many operators, so I wouldn't split
> them into prefix, etc. A list of share packages is a great idea.
> 
> So here is the list as I've revised it -- functions, constants,
> option variables, system variables, properties, operators, packages.
> 
> 
>>Dealing with 10 types of objects it is good idea to have
>>a little more informative master index.  Something like
>>
>>- abc (function) ........... 133
>>- abcd (special form) ....... 90
>>- abcd (keyword) ........... 200
>>
>>where each entry has type specifier in parentheses.
> 
> 
> That makes sense to me. I don't see a problem with modifying
> texinfo.tex to make an index like that.
> 
> We'll need to fix a bug in "describe" (it gets confused if
> there are two distinct items with the same name) in order
> to make this work. But that's a minor issue.
> 
> Hope this helps,
> Robert Dodier
> 
> 
> 		
> __________________________________ 
> Do you Yahoo!? 
> Yahoo! Mail - now with 250MB free storage. Learn more.
> http://info.mail.yahoo.com/mail_250
> 
> _______________________________________________
> Maxima mailing list
> Maxima@www.math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima