Dan Weston wrote:
> * Static typing, which increases robustness by allowing the
> compiler to catch many common errors automatically.
>
> * Type inference, which deduces types automatically and frees
> the programmer from writing superfluous type signatures.
>
> * Higher order functions, polymorphism, and lazy evaluation,
> which enable higher levels of abstraction and more
> compositional, thus more reusable code.
"frees the programmer from writing superfluous type signatures" is a
weak (and dubious) advantage. I very often write "superfluous" type
signatures first (to be sure I know what I'm asking my program to do)
and only then let Haskell check it. Then I leave it in as good
documentation.
I agree with this. Perhaps
Type Inference: deduces types automatically, so you don't have to clutter
up your code with type declarations. You can still write type declarations
for documentation purposes, and these will be automatically checked by the
compiler.
What I'd *really* like to see is a bunch of links on the front page leading
to pages that describe the main differences between Haskell and some other
language (C, Python, Java, C#, F#, ...). The easiest way to grasp what
Haskell is all about is by reference to a known baseline, and programmers
tend to have different baselines. e.g. the C page might start with
"Haskell is a functional language", whereas the Python page might start
with "Haskell is statically typed". I guess this is similar to Ian's
suggestion.
Cheers,
Simon
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe