On Thu, Dec 12, 2002 at 08:59:21AM -0800, Richard Fateman wrote:
> Try algebraic:true;
> tellrat(a^5-2*a^3-8*a-2);
> rat(a^6-1);
> rat(1/a^8);
> etc/
So, this lets you work in a global polynomial ring
R[a]/(a^5-2*a^3-8*a-2)? If I want to use more than one polynomial, do
I have to construct a groebner basis by hand or is it automatic? The
info page doesn't seem to say.
> maybe not quite what you want, yet. The 3rd root??? Historically
> the roots have been represented by a pair: an interval and the
> defining polynomial.
Aha! Intervals make much more sense. I've always wondered about
this; (it's certainly seems easy to account for such intervals under
addition and multiplication! I wasn't even really sure about how to
order the roots!) Actually, do you use intervals of the line or
squares on the complex plane? I just heard about this basic idea very
informally from somebody in a conversation at lunch once and it seemed
really cool, but when I tried to develop an algorithm for the addition
myself I fell on my face! :( Say, do you happen to know of any books
or papers I can read on the subject?
> For polys of several variables (defining algebraic functions rather
> than algebraic numbers) the algorithms are harder and I think not in
> maxima.
Sounds really hard!!
> >So is this an instance where scheme differs from most lisps?: In MIT
> >Scheme:
> >
> > 1 ]=> (((lambda (x) (lambda (y) (+ x y))) 1) 2)
> >
> > ;Value: 3
> >
> >and in clisp:
> >
> > [6]> (((lambda (y) (lambda (x) (+ x y))) 1) 2)
> >
> > *** - EVAL: ((LAMBDA (Y) (LAMBDA (X) (+ X Y))) 1) is not a function name
>
> This is not the difference. In clisp you probably have
> to write #'(lambda ...) instead of (lambda ...) and you
> would get the same thing as in scheme.
Oh, alright. I need to learn more lisp.
> (setf x 23)
> (defun g(x)(h))
> (defun h() x)
>
> (g 200) ; dynamic scope returns 200, static scope (scheme-like)
> returns 23.
Still decoding this...
Thanks for your patience,
Carl