
Hi, Am Mittwoch, den 17.02.2016, 10:05 +1100 schrieb Manuel M T Chakravarty:
* Be careful in designing your exercises/assignments (esp early ones), to make it unlikely for students to run into class related errors.
have you, or someone else, considered or tried to simply have students start with their own list data type, i.e. data List a = Nil | Cons a (List a) and have them implement the combinators they need themselves? Of course, you’d have to tell them to use names that do not clash with Prelude-exported, but this would avoid Foldable et. al. and be more educational (at the expense of maybe a slower progress, and not having nice syntax). Similarly, one could teach them about the non-magicness of $ and side- step the issue with $ by having them write ($$) :: (a -> b) -> a -> b f $$ x = f x infixr 0 $ (or whatever symbol they fancy). This would be akin to using a beginner’s prelude, only that the students would be writing it themselves, which IMHO is a big difference from an educational point of view. Greetings, Joachim -- Joachim “nomeata” Breitner mail@joachim-breitner.de • https://www.joachim-breitner.de/ XMPP: nomeata@joachim-breitner.de • OpenPGP-Key: 0xF0FBF51F Debian Developer: nomeata@debian.org