On Sun, Nov 01, 2009 at 09:52:47AM +0100, Nicolas Thiéry wrote: > Most of this discussion boils down to a confusion about what > categories are/should be in Sage. > > IMHO: they are a design pattern, supported by a programming > construct. The main purpose is of course to model mathematical > categories. However, accumulated experience (ours, on top of all that > of the MuPAD and Axiom developers) tells us that, for practical > purposes, it is useful, meaningful, and safe to enlarge a bit the > framework. Namely to accept some categories which do not quite model > mathematical categories, but still provide generic code and > mathematical information about parents sharing common properties.
Better statement: ... which model a collection of parents sharing some common properties, and provide mathematical information, generic specifications, code, tests and documentation, on them. > Note that Axiom pushed this much further, with use cases which are > much closer from that of abstract classes (see e.g. > http://www.axiom-developer.org/axiom-website/dotabb.html). > > The name "categories" might be a misnomer, but there is a long history > of using it for that purpose, so it's better to stick with it. On the other hand, it would be good to have some adjective for those Sage categories. Suggestions? Concrete categories? > Of course, the documentation, and in particular the primer should be > very precise about this. Suggestions and patches welcome! And I should give some examples (note: not all of them are currently implemented, or have this name): - Modules(QQ).Homsets() - Modules(QQ).Endsets() - Modules(QQ).FreeObjects() - Modules(QQ).CartesianProducts() # modules which are constructed as a cartesian product of modules - Modules(QQ).TensorProducts() # ... - Modules(QQ).Quotients() # modules which are constructed as a quotient of some ambient module - Modules(QQ).Subsets() # ... - Modules(QQ).SubQuotients() # ... - ModulesWithBasis(QQ) (or should it be Modules(QQ).WithBasis()?) Cheers, Nicolas -- Nicolas M. Thiéry "Isil" <nthi...@users.sf.net> http://Nicolas.Thiery.name/ --~--~---------~--~----~------------~-------~--~----~ To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---