On Monday 07 Nov 2011 21:16:22 Ralf Hemmecke wrote: > On 11/05/2011 11:07 AM, Martin Baker wrote: > > I find myself wanting a way to define types inductively like this: > > > > X := Union(A,T X) > > Have you studied Aldor-Combinat? I'm not sure whether it helps you with > monads, though. But it has some code to define inductive types...
Ralf, I have had a quick look at: http://www.risc.jku.at/people/hemmecke/AldorCombinat/ It looks very interesting and it is one of the things I have been intending to get back to and study in more detail. Just looking at some of your description, for instance: "Speaking in terms of category theory, a combinatorial species is nothing but an endofunctor F : B -> B from the category B of finite sets and bijections to itself." It looks like there may be a lot of commonalty between what we are both trying to do? Could you point me to the part which deals with defining inductive types? Also I would be interested in your more general views on the suitability of certain languages for this type of programming. Are there language features that I should be asking for in SPAD that would make modelling this type of mathematics more practical? (well I can ask). I'm only guessing here but, for some reason, I suspect you may be keen on Aldor language features such as 'dependant parameters'? However although it is useful, it doesn't seem to be enough. For example Saul Youssef code at: http://axiom-wiki.newsynthesis.org/SandBoxAldorCategoryTheoryCategories?root=SandBox%20Aldor%20Category%20Theory seems less than ideal? What I would really like to work out is why things like this Haskell code: class Monad m where unit :: a -> m a mult :: m (m a) -> m a which are so powerful seem to be hard to do in SPAD related languages? Could it be that SPAD and Haskell are complementory, SPAD is better for maths that is characterised in a set-theoretic way and Haskell is better for maths that is characterised in a category-theoretic way? Then we should not try to force a single language to do both? I'm not saying I have come to this conclusion, I just don't know. It would help if I understood what it is about the above Haskell class that makes it so difficult to represent in SPAD. Is it somthing about allowing partial types to be combined to form a complete type? I just can't work it out. Martin -- You received this message because you are subscribed to the Google Groups "FriCAS - computer algebra system" group. To post to this group, send email to fricas-devel@googlegroups.com. To unsubscribe from this group, send email to fricas-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/fricas-devel?hl=en.