On 28/09/2009, at 7:38 AM, Peter Verswyvelen wrote:
That's not really true. Just use CAL from the Open Quark
framework... It's almost Haskell 98, with some extras, and compiles
to fast JVM code.
http://openquark.org/Open_Quark/Welcome.html
They even seem to do all kinds of advanced optimizations - like
converting tail calls to loops - to get good Java performance.
And they have a better record system, a graphical environment to
learn it, etc.
So I think CAL should be in the list, and since it's basically
Haskell...
Liking CAL, I suggested it be included in a comment when the original
post was made, but I never made the time to write up a matching set of
examples myself.
Curt, your first blog post is almost compatible with CAL -- you don't
need to use a record type to get named accessors, CAL doesn't support
list comprehension syntax, and the isBlank implementation would be
different.
Obviously the Java interop capabilities of CAL are very different to
Haskell (and a bit verbose, though quite extensive).
Dispatch comes out more-or-less the same -- although CAL doesn't do
equational style function defs or comprehensive pattern matching like
Haskell. In CAL I'd write letter_grade something like (untested):
letter_grade :: Num a => a -> Maybe Char;
letter_grade val =
find (\pair -> fst pair $ val) [(> 90, 'A'), ... )] `bind` (\p ->
return $ snd p);
where bind is >>=
Tom
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe