[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