This was primarily intended to be a private letter.
But as i had lost the address of Mr. D.Tweed, i am sorry, i am 
sending it to the list. 

To my notice on the program variables and symbolic indeterminates

>> let  s     = cToPol ["x","y"] 1  :: P
>>                               -- unity polynomial in x,y over Integer
>>                               -- - a sample element of domain  P
>>       [x,y] = varPs s         -- images of "x","y" in  P
>>  in   x^2*(x - x*y) ...
>> [..]


D.Tweed  writes

> [..]
> I _think_ it was primarily the simple sense that Jerzy was talking 
> about; it's nice that the system knows how to deal with 
> indeterminates by default since then functions written purely for 
> arguments with concrete values produce sensible results automatically. 
> [..]


I doubt whether the subject is clear to me. Maybe, you give an example?
What i think about it:

In mathematics, - and in programming too! - a variable means a name 
which can be given a value from some domain(s).
For example, for a polynomial  f  in  x  over Integer,  x  can be 
given a value from any domain D with (0,1,+,*).
D is a value scope of variable.

More restricted notion: 
indeterminates - the elements of an algebraic domain relied by a set 
of algebraic equations - usually, the empty equation set.

Probably, Maple knows what is the default scope for x,y  in  e = `x+y' 
- when entered alone, without any environment.
Probably, Maple puts it by default to be the polynomial in  x,y  with
integer coefficients.
What Haskell can do about this?

1. To require the programmer to create environment

This is how DoCon-2 acts with the polynomial indeterminates.
What `x',`y' mean can be also defined explicitly in 1-2 program lines 
- once for all the program after `in'. This is done by using the CA
system standard functions  cToPol, varPs.
And this is more flexy. Because the user knows better what `x',`y'
should mean.

2. To extend the Haskell language with the type (domain) conversion 
   system.
See  <http://www.botik.ru:/pub/local/Mechveliani/basAlgPropos/>,
     section 'dcon'.

In this case, say,  `2+x',  z*(1/2)+x   
have chance to convert automatically the value of  x  to some
appropriate domain.

------------------
Sergey Mechveliani
[EMAIL PROTECTED]

Reply via email to