<p>I agree with the approach. I have never done a intro to FP but I think parser combinators couod be a good start. U begin by showing the high level interface, I mean learning how to write simple parsers using for instance Parsec is.easy and one immediately sees the elegance and simplicity that approach has over say yacc. Then u guide them on implementimg a own basic parser combinator library which in my opinion is not out of this world with a good guideance. That way they see that such a powerful tool aint dark magic with FP.</p>
<p>Anyways good luck with your workshop.<br></p>
<p>Cheers,</p>
<p>N.</p>
<div class="gmail_quote">On Apr 16, 2015 7:25 AM, "Raphael Gaschignard" <<a href="mailto:dasuraga@gmail.com">dasuraga@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Is this aimed for FP beginners who already know something like Java? I think the thing to do here would be to come up with some tasks that are genuinely tedious to write in a Java-esque (or Pascal-like) language, and then present how FP solutions are simpler.<br><div><br></div><div>  I'm of the opinion that FP succeeds not just because of the tenants of FP, but because most of the languages are terse and have code that is "pretty". Showing some quick things involving quick manipulation of tuples (basically a bunch of list processing) could show that things don't have to be complicated with a bunch of anonymous classes.</div><div><br></div><div>  Anyways, I think the essential thing is to present a problem that they, as programmers, have already experienced. The big one being "well these two functions are <i>almost</i> the same but the inner-part of the function has different logic" (basically, looking at things like map). Open up the world of possibilities. It's not things that are only possible in Haskell/Scheme (after all, all of these languages are turing complete so..), but they're so much easier to write in these languages.</div></div><br><div class="gmail_quote">On Thu, Apr 16, 2015 at 7:41 AM Mike Meyer <<a href="mailto:mwm@mired.org" target="_blank">mwm@mired.org</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Apr 15, 2015 at 5:28 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"><div class="gmail_extra"><div class="gmail_quote"><div class="gmail_quote">2015-04-15 19:15 GMT+00:00 Mike Meyer <span dir="ltr"><<a href="mailto:mwm@mired.org" target="_blank">mwm@mired.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><span></span>Well, functional programming is very much like an elephant.</div></div></blockquote><div><br>I have the same thought about OOP some years ago, them I discovered then first meaning of it and all was so clear and simple. My goal isn't to teach the full power of FP, my goal is to give them inspiration, to suggest that there is a wider world to explore.</div></div></div></div></div></blockquote><div><br></div></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>Just clarify, this is a reference to the fable of the blind men and the elephant. What you think it is like will depend on how you approach it. </div></div></div></div>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">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>
</blockquote></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>