[Aldor-l] extracting the grammar from a species and isomorphismtypegeneratingfunction

Martin Rubey martin.rubey at univie.ac.at
Thu Oct 19 06:18:56 EDT 2006


Dear Ralf, *

I ported the support for extracting the grammar from a given
CombinatorialSpecies to your new library. (which is really cool, I should add
once more...)

Doing so I also made isomorphismTypeGeneratingSeries work. The crucial thin is
that, when you have several "recursive" structures, you have to introduce all
the names before you refer to them. I.e.,

generatingSeries: ExponentialGeneratingSeries == new();
isomorphismTypeGeneratingSeries: OrdinaryGeneratingSeries == new();
grammar: Grammar == new();

set!(generatingSeries$%, generatingSeries$F(L) * generatingSeries$G(L));
set!(isomorphismTypeGeneratingSeries$%, isomorphismTypeGeneratingSeries$F(L) 
                                      * isomorphismTypeGeneratingSeries$G(L));
set!(grammar$%, apply("Times", grammar$F(L), grammar$G(L)));


If instead you say

generatingSeries: ExponentialGeneratingSeries == new();
set!(generatingSeries$%, generatingSeries$F(L) * generatingSeries$G(L));

grammar: Grammar == new();
set!(grammar$%, apply("Times", grammar$F(L), grammar$G(L)));


Aldor will complain that grammar is missing from F(L), since the first set!
statement made it instantiate F(L) and it never reached 

grammar: Grammar == new();


I'm not quite sure whether this is a bug or a feature. Is the order of
evaluation during domain instantiation fixed and documented? (I asked this
before, did I?)

Can I check in my code?

Martin




More information about the Aldor-l mailing list