[...]
> (I guess its a cousin to templates in C++) > Or perhaps you need a separate section for syntax > for constructing new datatypes.. yes, i think so. With enums and ranges being a special case. i'll also put records [...] > (Please dont take this as an insult by my re-explaining these things. > I just want to make myself clear.) the pb is that the semantic is so different between the languages. So i just put all of them with no explaination. > > > Under constrol structure, at least give mention to monads! > > > Common examples (ST,IO,List,Maybe) and "do notation" > > > > > > Monads are defined by instanciating them under the Monad type class. > > > (basically giving definitions for the operators >>= (aka 'bind') and >> > > > > please be more precise, what do i put? in which category? > > I guess I suggested control structure because in a way, you can "control > the flow" from a semantic point of view of your program by building / > choosing a specific monad. For instance, usage of the List monad brings > nondeterminism into the language (although, in reality, > the multiple solutions alluded to by the term are elements of a > deterministically (is that a word?!) produced list) "syntax across languages" is about syntax! If something needs much explaination, it can't be included :p [...] > I suppose a sollution to what to do with do-notation is to put something > like > [...] > or do {stmnt; var <-stmtn; etc} > > under your section named "Various Operators" with description > "do statments under monad" I don't accept entries where only one language fits in :p (this may change as soon as monads appear in more languages) [...] > > > References arent missing. They are implemented under both the ST and IO > > > monads. > > > > what is the syntax? > > no syntax, only functions which create/manipulate them (under some monad). > > do{ x<-newSTRef exp; y <-readSTRef x; writeSTRef x exp} > > for IORefs do s/ST/IO/g to above line. eurk ERROR "/usr/share/hugs/lib/exts/ST.hs":48 - Syntax error in type expression (unexpected `.') isn't there a way ST.hs would require the extensions? a pragma or something? someone not knowing the "-98" would wonder for a long time about what to do :-( anyway, the simplest examples i found: show $ runST (do { x <- newSTRef 2; writeSTRef x 3 ; readSTRef x }) so i can write: newSTRef in "reference (pointer)" "creation" readSTRef writeSTRef in "reference (pointer)" "dereference" WDYT? PS: show $ runST $ do { x <- newSTRef 2; writeSTRef x 3 ; readSTRef x } is not working :'-( _______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe