I'm firmly with Derek.. we should teach people things like maps, folds and generic recursion instead of subjecting them to stuff like Java or C++. I'm not starting a war here, just stating that after 30+ years in software, mentoring and helping people learn... that, like teaching your kid to read or play guitar... the magic just happens. They learn and you don't know how they learned but they take it in and build on it.

By not clouding impressionable learning minds with the gory details for for loops and such like but instead immediately beginning their programming lives with maps folds and recursion I think we would be raising the level of goodness... then maybe Haskell would be taught in schools!

I taught myself prolog a year or three back...thanks to my FP skills, concepts like recursion were a done deal and backtracking was not that hard to take on board. Maybe we should teach Prolog as the first language people ever learn!

Regarding language pragmas. Yes!!! A complete hitch-hikers guide with information examples would be good. I have often tried to work with code I find only realise that the author had used the "automatically munge strings to be the right type" option and not mentioned it.

Whatever. Haskell started in '98, it's 2016 now... it's going to last!

:)
Sean


On 15 December 2015 at 20:13, Rein Henrichs <rein.henrichs@gmail.com> wrote:

Mr. McIlroy,

FWIW I would love to read more about that McCarthy talk. It
sounds like an amazing experience.

> There is no authoritative source about these pragmas. They are listed
> and described in the GHC User Guide, but that source all too often
> defines solely by example, not even bolstered by a formal syntax
> specification.

I think it would very helpful simply to better (and more rigorously)
document the syntax and semantics of the available extensions. There is
currently a call to action to update GHC's Haddock documentation in
preparation for the 8.0 release [1]. Perhaps some effort can also be
directed towards the documentation of the LANGUAGE pragmas.

There is still a problem, though: For completeness, one must consider
the interactions of the various subsets of these pragmas, some of which
are already known to be unsound. What's worse, the number of extant
pragmas already makes an enumeration of these subsets impractical, since
there are some 10^31 of them even ignoring the "NoX" pragmas.

The only long-term solution then seems to be to codify a new Haskell
standard that incorporates some known-good subset of these pragmas that
the community seems to agree on, which I suppose is part of the task
that the Haskell Prime committee has before them. I do not envy them.

[1]: https://mail.haskell.org/pipermail/ghc-devs/2015-December/010681.html
_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners