> * 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.
Also, if you're going to stress the benefits for the casual or new
reader, maybe you should spell them out explicitly:
* Static typing
- Compiler automatically infers a static type for every expression,
completely eliminating any potential for runtime type mismatch errors,
and checks any programmer-supplied type annotation for correctness. The
absence of silent typecasting also eliminates a whole class of
hard-to-find program logic errors.
* Higher-order functions and polymorphism
- Encourages higher-level abstraction and unshackles algorithm
design from implementation details.
* Lazy evaluation
- Separates the concerns of the called function ("what can I
provide?") and the calling function ("how much do I need to know?") and
facilitates "borrow-from-the-future" techniques where useful with
infinite data structures or recursive algorithms.
Thomas Schilling wrote:
On Mon, 2007-11-26 at 20:31 -0800, David Fox wrote:
On Nov 26, 2007 11:38 AM, Thomas Schilling <[EMAIL PROTECTED]>
wrote:
Haskell is a general-purpose, pure functional programming
languages
that puts many interesting results from research into a
practical
programming language. It's features include:
I think it is stronger to say "many powerful results" rather than
"many interesting results".
Yes, good!
Also it should be "its" rather than "it's", but I didn't want to reply
to my own message since it was meant as a draft to work with.
I'd like to turn this into a refinement of a concrete proposal. I
skimmed the original thread and it pretty much diverged into experience
reports or meta-level discussions on what or how to advertise Haskell.
This has its place, but I think we can get to a description that is good
enough for now and addresses Don's issues mentioned in the
thread-starting message.
So, I would welcome more concrete adjustments to my proposal.
/ Thomas
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe