On Fri, 10 Oct 2008, Justin Bailey wrote:
I've created a "cheat sheet" for Haskell. It's a PDF that tries to summarize Haskell 98's syntax, keywords and other language elements. It's currently available on hackage[1]. Once downloaded, unpack the archive and you'll see the PDF. A literate source file is also included.
..
The audience for this document is beginning to intermediate Haskell programmers. I found it difficult to look up some of the less-used syntax and other language stumbling blocks as I learned Haskell over the last few years, so I hope this document can help others in the future.
..
Justin [1] http://hackage.haskell.org/cgi-bin/hackage-scripts/package/CheatSheet [2] git://github.com/m4dc4p/cheatsheet.git _______________________________________________
Justin (and everyone now contributing to this), thanks. This type of thing is very helpful. There is a well-known one-page cheat-sheet like this for Perl5 (and a newer one for Perl6 too). You can see it by typing `perldoc perlcheat` on a system with Perl. I wonder if we don't need something like that. On a related note, I had come up with this short list to help with how to read the Haskell symbols. I email this out when trying to get new people started: ----- Haskell symbology One thing that I found very difficult at first was how to read a lot of the symbols in the Haskell code. I made up a small cheat-sheet that explains how to read some of it: Some definitions of Haskell symbols: :: "has type" -> "to" The type 'Integer -> Integer' takes Integer as an argument and evaluates to an Integer. We say this type is "Integer to Integer" => "evaluates" or "reduces to" Used in function type signatures, read something like this: foo :: (Bar b) => b -> c For all instances of type class Bar (here referred to as b), foo is a function from b to c. Or foo "has type" b to c. [a] "list of a" The family of types consisting of, for every type a, the type of lists of a. : "cons" List cons operator, adds first argument to the front of second, part of the List monad: (:) :: a -> [a] -> [a] Read: cons has type a to list of a to list of a !! List index operator [ 1, 2, 3 ] !! 1 = 2 (lists are 0-based) (!!) :: [a] -> Int -> a Read: (!!) has type list of a to Int to a | "such that" <- "drawn from"
= "bind" Part of class Monad
"then" Part of class Monad
----- -- Dino Morelli email: [EMAIL PROTECTED] web: http://ui3.info/d/ irc: dino- pubkey: http://ui3.info/d/dino-4AA4F02D-pub.gpg _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe