In a domain and in categories referenced in a domain the notation %
represents "this domain" (or self in some programming languages).  So
we commonly write for example

with
  f: (%,%) -> %

to indicate a function f which takes a pair of values in this domain
and returns a value in this same domain - whatever domain we happten
to be talking about in this context.

But what if we are interested in the domain as a functor?  Suppose I
was writing an "endofunctor" domain constructor like 'Set' and I
wanted to treat constructions like 'Set Set R', i.e. sets of sets as
something special. E.g.

  MySet:(T:SetCategory):SetCategory == with
    join: MySet MySet T -> MySet T
    ...

I cannot really use MySet here because MySet is not defined yet and
the compiler complains. I cannot use % here like this:

    join: % % T -> % T

because % refers to 'MySet(T)' for some domain T in SetCategory.  But
MySet(T) is itself a domain in SetCategory so it does make sense to
iterate it. How can I do this?

I recall another related notation %% (perhaps only in Aldor?) what is
it used for?

Regards,
Bill Page.

------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________
open-axiom-devel mailing list
open-axiom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open-axiom-devel

Reply via email to