On Wednesday 08 Jun 2011 17:51:19 Waldek Hebisch wrote:
> - You implement a bunch of "expression like" domains.  Have you checked
>   if existing domains have needed functionality?  One obvious alternative
>   is to base you implementation on Kernel.  Another is to use
>   SEexpression as representaion.

I've been thinking about this and I agree that the computation domains
are
"expression like" .... sort of .... but ....
it seems that an expression would be in some algebra, for instance
perhaps there could be an expression where the symbols are elements of
a group, or a boolean algebra, or even a mixture of algebras?

So if lambda-calculus, combinators and intuitionistic logic are like
expressions then, what is the algebra that they are expressions in?

For instance imagine I had an algebra (don't take this very loose
pseudo-code laterally):

myAlgebra(baseAlgebra)....
.... with
  e:Record(baseAlgeba,baseAlgeba) -> % -- constructor
  m:(%,%) -> % -- binary op
.... ==>
  Rep:=Record(A,B)

Then I could have some expression manipulator for that algebra:

myExpression()....
.... with
  e:% -> Symbol -- code to read out a given expression
  m:% -> Record(%,%)
  eval:% -> myAlgebra -- apply myAlgebra recursively to get single
term
... ==>
  Rep:=Union(e:Symbol,m:Record(%,%))

But I can't see a way to define lambda-calculus, combinators or
intuitionistic logic in this sort of way? Somehow they seem to need to
be defined in terms of a inductively defined co-datatype like this:

Rep:=Union(e:base,m:Record(%,%))

rather than a datatype like this:

Rep:=Record(A,B)

I am coming at this in abstract terms here, but in practical terms I
haven't yet seen a practical reason to use the domains you mention,
for instance I haven't yet noticed a need for caching of terms, but
that may change?

However I do like the idea that when the compiler compiles an algebra
like myAlgebra then why not allow it to generate expression
manipulator code for the algebra at the same time?

Martin

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/fricas-devel?hl=en.

Reply via email to