String != [Char]

Gabriel Dos Reis gdr at
Sun Mar 25 21:47:50 CEST 2012

On Sun, Mar 25, 2012 at 2:08 PM, Edward Kmett <ekmett at> wrote:

> If anything we delude ourselves by overestimating the ability of kids just
> shortly out of highschool to assimilate an entire new worldview in a couple
> of weeks while they are distracted by other things. Any additional
> distraction that makes this harder is a serious pain point.

We are doing our students no favor, no good, in being condescending to
them pretending that they can't handle teaching material that would actually
be close real world experience.  If we truly believe that they don't have
enough time to learn what would really be useful to them, then we are
truly wasting their valuable time teaching them things they would have to
unlearn before writing good and correct code.  The education would have
been a complete failure and waste of resources.

> Consequently, in my experience, most instructors don't even go outside of
> the Prelude,

but  is that even a good thing?

> except perhaps to introduce simple custom data types that their
> students define.

I would say that does not do students any good, nor does it do justice to
the language.  If one believes that Haskell is unlike any other "mainstream"
language, then it is an opportunity to show that it can handle beautifully and
flawlessly some real world problems whose solutions are more involved
in other more popular languages.   These days, most of the students are
strolling around with "smart phones" that have lot of data in form of texts
(email, SMS chats, etc.)  What better real world data could you find at
a cheaper price to get them experiment with?  Restricting oneself to
purely "academic"
exercises, with no practical benefit whatsoever,  would only reinforce
(mis)perception that the language isn't of any use to them -- and they would
probably be indulging more into distractions, and it would be hard to
blame them.

> The goal in that period is to get the students accustomed
> to non-strictness, do some list processing, and hope that an understanding
> of well-founded recursion vs. productive corecursion sticks, because these
> are the things that you can't teach well in another language and which are
> useful to the student no matter what tools they wind up using in the future.

I would say that is even more reasons to get them learn something that they
would not have to unlearn in order to remain harmless :-)

> I would rather extra time be spent trying to get the users up to speed on
> the really interesting and novel parts of the language, such as typeclasses
> and monads in particular, than lose at least a quarter of my time fiddling
> about with text processing, a special case API and qualified imports,
> because those couple of weeks are going to shape many of those students'
> opinion of the language forever.

More reasons not to show them anything that would reinforce the idea that
language should not be taken seriously and is complete waste of time.

You would be surprised to learn how bored students are *because* we obsess
too much on trying simplify their lives, while they are craving for us
to make it
more interesting, more challenging.

-- Gaby

More information about the Haskell-prime mailing list