Burning bridges

amindfv at gmail.com amindfv at gmail.com
Thu May 23 03:35:28 CEST 2013



El May 22, 2013, a las 9:25 PM, Ivan Lazar Miljenovic <ivan.miljenovic at gmail.com> escribió:

> On 23 May 2013 11:06, Casey McCann <cam at uptoisomorphism.net> wrote:
>> On Wed, May 22, 2013 at 8:39 PM, Ivan Lazar Miljenovic
>> <ivan.miljenovic at gmail.com> wrote:
>>> On 23 May 2013 07:32, Malcolm Wallace <malcolm.wallace at me.com> wrote:
>>>> -20 for generalising the Prelude
>>>> +1 for removals from the Prelude
>>>> -1 for adding monomorphic stuff
>>>> +1000 for doing nothing
>>>> 
>>>> You are all nuts. :-)
>>> 
>>> I don't know if I'd go quite _that_ for as Malcolm for the weightings
>>> for the different proposals...
>>> 
>>> But I was speaking with a few other tutors of an introductory
>>> CS/programming course that uses Haskell (note: it's teaching
>>> programming with Haskell, not teaching Haskell per se: for example,
>>> all pattern matchings must be done with case statements as the
>>> lecturer considers top-level pattern matching a Haskell-specific
>>> quirk) about these proposals...
>> 
>> So in other words, your contention is that the design of the core
>> library of Haskell should be driven by the needs of an introductory
>> programming course, which is not even attempting to teach Haskell
>> specifically, aimed at students who can't even figure out how tab
>> characters work? That's marvelous.
> 
> I think you missed my point... I'm not saying it's just because of the
> course I'm tutoring, but that I disagree with the contention of
> "people learning Haskell will pick this up relatively easier so we
> should just dismiss anything about not generalising because it will
> make it easier for new people".
> 
> Also, not all people that learn Haskell are self-motivated in doing
> so, and thus won't take in the extra mental effort to understand how
> type-classes work right from the beginning.
> 

If you want to avoid throwing people right into typeclasses, I could imagine teaching them:
 - To write map/fold/filter themselves, with simple [a] types
 - By giving them a small "module CS101 where" file, with monomorphic types of all our familiar friends, and then have them import with "import qualified CS101" and call "CS101.map" etc

Tom


More information about the Libraries mailing list