[Haskell-cafe] Intermediate Modern Haskell

Richard O'Keefe raoknz at gmail.com
Sun Dec 20 05:27:57 UTC 2020


Have you looked at Richard Bird's "Thinking Functionally"?

On Fri, 18 Dec 2020 at 11:53, Carette, Jacques <carette at mcmaster.ca> wrote:

> Excellent question. I am not focused on any project/applications in
> particular. I do have a personal bias towards “languages” and processing of
> them. Haskell really excels at that.  I’m getting the students in my *
> *grad** class (on generative programming) to do partial evaluators using
> finally tagless the way “it should have been done” in the paper, if we’d
> been all-knowing 10 years ago 😉 .  I don’t think we’ll get to that in
> the undergrad class. Maybe as bonus questions.
>
>
>
> Thanks for the timely reminder to try extra-hard to put all the features
> in context. My background being Pure Math (long ago), that sometimes leads
> me to forget that abstraction for abstraction’s sake isn’t everyone’s cup
> of tea!
>
>
>
> Certainly things like you mention are excellent topics that fits well with
> the kinds of programs that I like to write, and that Haskell is fairly well
> suited for (I’m become an Agda fanboy, so it feels like I’m really slumming
> it by coding in Haskell, even worse when I’m working in my metaocaml code
> base).
>
>
>
> *From:* Tikhon Jelvis <tikhon at jelv.is>
> *Sent:* December 16, 2020 10:42 PM
> *To:* Carette, Jacques <carette at mcmaster.ca>
> *Cc:* haskell-cafe <haskell-cafe at haskell.org>
> *Subject:* Re: [Haskell-cafe] Intermediate Modern Haskell
>
>
>
> What kind of projects and applications are you focused on? In my
> experience, the difficulty in learning—and teaching—"advanced" Haskell
> topics is less in the topic itself and more in the level of abstraction
> involved. I know that I struggled with GADTs and even existential types not
> because of the features themselves but because I had real trouble putting
> the features into context and understanding how I would use them. Just
> *why* are those abstractions in particular interesting?
>
>
>
> I can recommend some of my personal favorite topics like streaming
> libraries, FRP, automatic differentiation and the probability monad, but
> whether that recommendation makes sense depends on how you want to use
> those topics. Alternatively, if you have some specific things you would
> want to build with the class, we could suggest topics that fit those goals.
>
>
>
> On Wed, Dec 16, 2020, 19:22 Jacques Carette <carette at mcmaster.ca> wrote:
>
> I will be teaching a second Haskell course next semester.  Let's assume
> that
>
> Introducing functional programming
>
> Getting started with Haskell and GHCi
>
> Basic types and definitions
>
> Designing and writing programs
>
> Data types, tuples and lists
>
> Programming with lists
>
> Defining functions over lists
>
> Playing the game: I/O in Haskell
>
> Reasoning about programs
>
> Generalization: patterns of computation
>
> Higher-order functions
>
> Developing higher-order programs
>
> Overloading, type classes and type checking
>
> Algebraic types
>
>
>
> (i.e. the first chapters of Thompson's Haskell: the Craft of Functional
> Programming book is "beginner, classic Haskell".  The next few chapters,
> namely
>
> Abstract data types
>
> Lazy programming
>
> Programming with monads
>
> Domain-Specific Languages
>
> Time and space behaviour
>
>
>
> would be (re)done at the start of such a second course. The question for
> cafe is: what else? I will likely cover:
> - Typeclassopedia
> - finally tagless
> - Template Haskell
> - Optics
> - GADTs
> - recursion schemes
>
>
>
> I should probably cover parser combinators, pretty-printing, cabal&stack.
> I know that http://dev.stephendiehl.com/hask/ gives me one heck of a
> smorgasbord of options, which is kind of a problem.
>
>
>
> Things I know I will not cover:
> - dependent types (if I was going to do that, I'd switch to Idris/Agda)
> - concurrency (don't ask)
>
>
>
> Jacques
>
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
>
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20201220/1a1a60ba/attachment.html>


More information about the Haskell-Cafe mailing list