<div dir="ltr">The first exercise I did when I learned Haskell some 8 years ago was re-implement all of the list functions in the Prelude, based on the types and documentation.</div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Apr 14, 2015 at 11:34 PM, Gautier DI FOLCO <span dir="ltr"><<a href="mailto:gautier.difolco@gmail.com" target="_blank">gautier.difolco@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hello,<br><br>Some days ago I have participated to a coding dojo* which aimed to be an introduction to functional programming. I have also facilitate 3 of events like this and do several talks on this subject. But I'm kinda disappointed because each time there is a common pattern:<br>1. Unveil the problem which will be treated<br>2. Let the attendees solve it<br>3. Show the FP-ish solution (generally a bunch of map/fold)<br>I think it's frustrating for the attendees (because they don't try to solve it) and gives a false illusion of knowledge.<br>I don't consider myself as a "FP guru" or anything but for me FP is a matter of types and expressions, so when someone illustrate FP via map/fold, it's kind of irritating.<br>Ironically, the best workshop I have done was on functional generalization (you begin by two hard coded functions, sum and product, and you extract Foldable and Monoid), but again, it's not satisfying.<br>We can do better, we should do better.<br>Have you got any feedback/subjet ideas/examples on how to introduce "real" FP to beginners in a short amount of time (like 1-3 hours)?<br><br>Thanks in advance for your help.<br>Regards.<br><br>* Basically you have 2 to 3 hours, a problem and you try to solve with in iteration with different constraints<br></div>
<br>_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
<br></blockquote></div><br></div>