axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Axiom-developer] Re: Combinat


From: Bertfried Fauser
Subject: Re: [Axiom-developer] Re: Combinat
Date: Sat, 30 Jun 2007 16:12:16 +0200 (CEST)

On Sat, 30 Jun 2007, Ralf Hemmecke wrote:

Dear Ralf,

if we are here dealing already with a sort of pointers (or function
arrays) is there already in Aldor/Axiom a 'functor' domain?

I think of a Functor domain in the following sense, it should implement a
'categoy' (in the mathematical sense) of morphisms which opperate on
another (pair of) categor(y/ies). The functionality of such a category
would be to implement naturality of maps, coherence, composability of
morphisms, etc.

IFF such a thing would work, species would be an instance, as also lambda
rings and symmetric functions ;)


By the way, any templete category for symmetric functions in the oven?

Ciao
BF.

> > I've been studying your combinatorial species project.
>
> > Would it be reasonable to say that one could redefine (some of) the
> > data structures in axiom using a series of transformations and
> > combinations on sets?
>
> I would say, yes. It would not be every data structure though. One could
> define List as
>
> List(L: LabelType): CombinatorialSpecies L ==
>    Plus(EmptySetSpecies, Times(SingletonSpecies, List))(L) add {...}
>
> the {...} is needed because the usual List has a few more exports.
>
> But List is actually rather special and should be implemented in a more
> efficient way.
>
> But yes, species can be considered as a generic way to build data
> structures. And one would get their generating series and a generation
> of all structures of a certain size as a "side effect" that does not
> need any more effort than writing the "equation" as above for List.
>
> > Would it be a set of pointers?
>
> No. No pointers involved. Everything is fully and statically typed.
>
> > So a species is a "builder function" that would build a given data
> > structure, like a linked list, from a set of pointers?
>
> Builder function is correct. Pointers is wrong. If you have the
> construction as above you would says
>
> for l in structures set [1,2,3,4] repeat stdout << l << newline;
>
> and it will print all the 4! different lists of with 4 elements.
>
> (But you see List is rather special, I actually need it already to form
> the input of the "structures" function. But take
>
> 1 ==> EmptySetSpecies;
> X ==> SingletonSpecies;
> + ==> Plus;
> * ==> Times;
> B(L: LabelType): CombinatorialSpecies L == (1+X*B*B)(L) add {...}
>
> and the same "for" loop above with structures$B gives you all binary
> rooted trees with exactly 4 nodes.
>
> Hope that helps.
> Ralf
>
>
> _______________________________________________
> Axiom-developer mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/axiom-developer
>

% PD Dr Bertfried Fauser
%     Institution: Max Planck Institute for Math, Leipzig 
<http://www.mis.mpg.de>
%   Privat Docent: University of Konstanz, Phys Dept 
<http://www.uni-konstanz.de>
%  contact|->URL : http://clifford.physik.uni-konstanz.de/~fauser/
%          Phone : Leipzig +49 341 9959 735  Konstanz +49 7531 693491





reply via email to

[Prev in Thread] Current Thread [Next in Thread]