On Wed, 03 Jan 2001 11:26:53 -0500
Michael Zawrotny <[EMAIL PROTECTED]> wrote:
>
> [snip]
>
> The reason that I found GITH difficult wasn't that the
> concept
> of programming with functions/functional style was new to
> me. What got me was that the concepts and notations were
> much
> more "mathematical" than "programmatic". In my
> explorations
> of various languages, my experience with introductions to
> scheme/CL has mostly been that they tend to show how to
> do
> things that are familiar to imperative programmers, plus
> all
> of the things that you can do with functions as first
> class
> values. With intros to SML, OCaml and Haskell, there is
> a
> much greater emphasis on types, type systems, and
> provable
> program correctness.
>
> [snip]
>
> The thing that I would most like to see would entitled "A
> Practical Guide to Haskell" or something of that nature.
>
> [snip]
>
> One is tempted to come to the conclusion that Haskell is
> not
> suited for "normal" programmers writing "normal"
> programs.
How would you define a "'normal' programmer writing 'normal' programs?" What exactly
is a "'normal' program?"
(Perhaps another way of phrasing the issue is as the "declarative" vs. "procedural"
distinction, since the issue seems to be that of "what is" (types) vs. "how to"
(imperative expression; i.e., procedures).)
While I agree that "A Practical Guide to Haskell" would indeed be a suitable
alternative for programmers from the procedural school of expression, I would caution
that such an introduction would probably not be suitable for all.
If I may give my own case as an example, I studied both C and Scheme (in addition to
auditing a course in Haskell) in college, and favored Scheme over C precisely because
of my Scheme course's emphasis on provable program correctness. This is largely a
matter of background and taste: my course background was relatively focused on the
design and analysis of algorithms, with provable program correctness being a related
topic.
Perhaps, ideally, two separate tutorials (or perhaps a single tutorial with two
sections based on different viewpoints?) may be needed? The difficulty is that the
conceptual distance between the declarative and procedural schools of thought seems
too great to be bridged by a single viewpoint. It seems that any introduction
favoring either one would risk alienating the other.
Personally, I would really prefer "A Gentle Elementary Introduction to Haskell:
Elements of the Haskell School of Expression with Practical Examples," but some would
no doubt choose "Haskell in a Nutshell: How to Write Practical Programs in Haskell."
--Ben
--
Benjamin L. Russell
[EMAIL PROTECTED]
[EMAIL PROTECTED]
"Furuike ya! Kawazu tobikomu mizu no oto." --Matsuo Basho
_______________________________________________
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe