If you want to focus on math a bit, start with purity/parametricity/type safety, and then work up from there. You can lead into the Curry-Howard isomorphism and theorem proving languages like agda, or look in the direction of -XSafe, or the algebra of ADTs / free theorems / djinn. Both of these trains of thought eventually merge at the idea of automation acquiring knowledge from code and using it to write more code for you.I think something useful could be memory concerns: analysing space leaks, strictness, fusion, and related areas.
--Noon
On Wed, Jan 25, 2017 at 9:14 AM, KC <kc1956@gmail.com> wrote:
I would encourage GUI development using GHCJS or FRP or ... :)
On Tue, Jan 24, 2017 at 12:53 PM, Conrad Cunningham <hcc.olemiss@gmail.com> wrote:
I am teaching a class in Haskell-based functional programming for advanced undergraduates and beginning graduate students at my institution. None of the students have previously used Haskell and for most of my students functional programming is new.
Because I am teaching this in a "multiparadigm programming" course, I want to expand beyond what I have usually covered in the Haskell-based "functional programming" course and cover a few topics in areas such as parallel, concurrent, distributed, reactive, or metaprogramming (domain-specific languages, Template Haskell, etc.).
Assuming my course has more or less covered the topics in Learn You a Haskell for Great Good (with likely shallow coverage of monads) at that point, what would be good additional topics to cover, libraries to use, and tutorial or teaching resources to use? Although I have taught fundamental Haskell FP topics for many years, I have not delved into any of these "advanced" topics.
Thanks,Conrad--