Hi Nicolas, I'm assuming the subject line got your attention. :) I've been working on a basic implementation of quasisymmetric functions (monomial and fundamental basis only, no Hopf operations) and I already have something that seems to work. Without using sage-combinat. Hooray! Three cheers for categories in sage!
I did find a couple of questions as I went through this exercise, though. As you might guess, I looked at ncsf for a model. In the combinat/ncsf directory of sage-combinat, there is a file called categories.py. My questions are about three classes defined in this file: Category_concrete_representation ConcreteRepresentations and Bases The first two seem to not be specific to NCSF at all, and I ended up just copy-pasting them into them into my file. This isn't so good, since I would never have figured out to write them without ncsf as a guide. Is there a reason they aren't in sage-main? Can we put them in somewhere? The third one, as I understand it, defines the category of bases of a given instance of NCSF. I'm interested in the relation between this and the class 'Basis' in nscf.py, which inherits from CombinatorialFreeModule. A specific basis (say, Phi) will inherit from Basis, and be assigned the category Bases(NCSF). Currently, Bases contains a section class ParentMethods: which defines an attribute 'basis_indices', as well as the method 'one_basis()' and a few auxiliary methods relating to changing bases. It took me some time to figure out what was going on here (I'm still not completely sure I understand how ParentMethods works), and I would have much preferred to find these functions in the Basis class. In my implementation of QSym, I avoided using 'ParentMethods' altogether by putting all the code in the corresponding Basis class, and everything seems to work. Am I missing something? 'ParentMethods' feels like sneaking code in through the back door, and while I accept that it may sometimes be necessary, I think I would like to personally avoid it, if I can. Can I? :) Thanks, Jason
-- You received this message because you are subscribed to the Google Groups "sage-combinat-devel" group. To post to this group, send email to sage-combinat-de...@googlegroups.com. To unsubscribe from this group, send email to sage-combinat-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sage-combinat-devel?hl=en.