New type of ($) operator in GHC 8.0 is problematic
Joachim Breitner
mail at joachim-breitner.de
Wed Feb 17 08:22:27 UTC 2016
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 at joachim-breitner.de • https://www.joachim-breitner.de/
XMPP: nomeata at joachim-breitner.de • OpenPGP-Key: 0xF0FBF51F
Debian Developer: nomeata at debian.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20160217/d824a72f/attachment-0001.sig>
More information about the ghc-devs
mailing list