ANNOUNCE: Helium, for Learning Haskell, version 1.1

Dear all, We are proud to announce version 1.1 of Helium. It can be found at the Helium website: http://www.cs.uu.nl/~afie/helium/ Version 1.1 has the following improvements: - An installer for Windows systems for an improved out-of- the-box experience. - A cool Java-based graphical interpreter called Hint written by a student at our institute. It has a nice GUI with colours, toolbar buttons and menu's. The best feature is that it integrates with your favourite editor and you can jump to the exact locations of messages by clicking on them! - New warnings and hints for common mistakes: "sin .3", "X = 5" (see below for examples of messages) - Completely new presentation of type errors with more information - Much improved syntax error messages thanks to a new lexer. And thanks to Parsec we can tell not only what was unexpected, but also what would be legal at that position. - The command-line interpreter is now called 'texthint' to avoid conflicts with hmake's 'hi' (sorry!). TextHint is improved in many ways. For one, it now accepts file paths after :l. Other improvements can be found if you type :? - User manuals for the different tools (helium, hint, texthint) and other helpful information on the Helium website - We've compiled Helium with Oxygen (ghc -O2) and this makes the compiler twice as fast. Great work, GHC people! - One well-placed 'seq' makes Helium another 25% faster. - Very many minor bug fixes - The webpage is simpler, wider and easier to navigate thanks to a road map Have fun! the Helium team -- Examples of Helium messages These messages where generated by typing expressions on the texthint prompt. If you compile a file with these errors you will get exact error locations. Prelude> [(1, 3] Unexpected close bracket ']' Hint: Expecting a close bracket for '(' Prelude> sinn .2 Warning: Function composition (.) immediately followed by number Hint: If a Float was meant, write "0.2" Otherwise, insert a space for readability Undefined variable "sinn" Hint: Did you mean "sin" ? Prelude> map [1..10] even Type error in application expression : map [1 .. 10] even term : map type : (a -> b) -> [a] -> [b] does not match : [Int] -> (Int -> Bool) -> c probable fix : re-order arguments Prelude> let X = 5 in X Left hand side pattern defines no variables Undefined constructor "X" Hint: Use identifiers starting with a lower case letter to define a function or a variable Undefined constructor "X" Prelude> 1+chr '0' Type error in variable expression : chr type : Int -> Char expected type : Char -> Int probable fix : use ord instead
participants (1)
-
Arjan van IJzendoorn