Hi Martin, just a quick comment on your code. First of all, I am positively surprised that you have added some comments why you did something this way and also that you added a number of other comments and descriptions for the functions and domains. You are getting closer to LP ;-).
The book @Book{Ruskey:CombinatorialGeneration:2003, author = {Frank Ruskey}, title = {Combinatorial Generation}, year = 2003, } is missing the publisher. The "publisher" field is a *must* for a book bibtex entry. My first impression is that you added a lot of "Multi..." domains. I hope that we can somehow avoid to always having two domains (one with Multi and one without it). Without going into details, I would rather like to see that "Multi"-business, naturally incorporated with "structures" and "isomorphismTypes". I understand that you somehow want a more efficient datastructure for integer partitions, but if that is all, then it is not worth the trouble. I have reasons to avoid an extra IsomorphismType domain/category. 1) It makes the code more complicated. 2) you don't gain anything if you work with decomposable structures (Look at how you build the IsomorphismType for Plus and Times.) 3) Already now we have a problem with our data structures. Suppose someone constructs a complicated domain (like, for example, our famous trees). If one wants to do something interactively with them, then it is necessary to coerce from Tree to some List of Lists or to something else. We should first think about how we could give the user a way to manipulate (labelled) structures before we make the code more complicated and introduce yet another type (which basically looks like the whole stuff we have in trunk, but only with a multiset input). Martin, I'd find it quite useful if you could add the date in your mrx environment. Thanks. Put (defun rhx-date nil "Inserts todays date like 06-Jul-2003 into buffer." (interactive) (let ((ctime-string (current-time-string))) (string-match "^\\S-+\\s-+\\(\\S-+\\)\\s-+\\(\\S-+\\)\\s-+\\S-+\\s-+\\(\\S-+\\)" ctime-string) (let ((year (substring ctime-string (match-beginning 3) (match-end 3))) (month (substring ctime-string (match-beginning 1) (match-end 1))) (day (substring ctime-string (match-beginning 2) (match-end 2)))) (if (> 2 (length day)) (setq day (concat "0" day))) (insert (format "%s-%s-%s" day month year))))) into your .emacs and bind it to a key like... (global-set-key [(control f1)] 'rhx-date) so you just have to press C-F1. Best regards Ralf ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Aldor-combinat-devel mailing list Aldor-combinat-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/aldor-combinat-devel