syntax across languages
Pixel
pixel@mandrakesoft.com
11 Feb 2002 13:23:20 +0100
Jay Cox <sqrtofone@yahoo.com> writes:
[...]
> I'm not sure anything under haskell can be considered OO but I'm no
> languages expert.
IMO, it's very alike "mix-ins", Java's interfaces, pure abstract classes.
>
> You might could mention something about Type classes. This is the main
> (only) method of overloading functions in haskell.
>
> maybe you might make mention of polymorphic type system and how haskell
> uses type inferencing to determine the meaning of expressions (relates to
> type classes).
syntax-across-languages doesn't favour big explainations :p
>
>
> Using
>
> data = Foo ...
> really should be meantioned as a way to construct new types.
> newtype = Foo ... (new type)
>
> type Foo = ...
> is only a type synonym. heres an example.
> type String = [Char]
ok (i won't mention that i always have a hard time dinstiguishing them)
>
> 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 dont think you give list comprehensions a fair shake either.
> (btw, list comprehension is an example of an alternative
> syntax for using lists as a monad.)
>
>
> [f z elem | anylistfromlistoflists <- listoflists,
> element<-anylistfromlistoflists,
> elem >= 3,
> z <- someotherlist]
i could add a category for list comprehension.
is this a good approximate syntax?
[ f x0 x1 ... | x0 <- a_list, pred x0, ... ]
>
>
> References arent missing. They are implemented under both the ST and IO
> monads.
what is the syntax?
>
>
> sprintf ... show ?? (still show peruses no format specifiers so it can be
> kinda blah.)
no, "show" is really in the 'convert something to a string' category
>
> (!!) extracts a char from String since type String = [Char]
ok
>
> oh, and it isnt missing those math functions either. Take another look
> at the Prelude (google search it as I'm to lazy to find out url for exact
> page in haskell 98 report)
ok, added.