<blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote">This question makes me wonder... why is explicit recursion taught first? [...]<br>
</blockquote>

<br>Perhaps also because teachers, being older than their students, are often mired in outdated thinking.<br><br><div class="gmail_quote">On Tue, Mar 24, 2009 at 3:35 PM, Jake McArthur <span dir="ltr">&lt;<a href="mailto:jake@pikewerks.com">jake@pikewerks.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">-----BEGIN PGP SIGNED MESSAGE-----<br>
Hash: SHA1<br>
<br></div><div class="im">
Jonathan Cast wrote:<br>
| You know, this might actually need to be looked into.<br>
|<br>
| You need to know recursion and pattern-matching to *write* re-usable<br>
| higher-order functions, but how appropriate is that as the first thing<br>
| taught?<br>
<br></div>
An excellent question!<br>
<br>
Coincidentally, I was just having a conversation with my girlfriend<br>
about programming with &quot;building blocks.&quot; She described her main hurdle<br>
with programming at the moment, which is getting over the fact that she<br>
is used to working with tangible objects that you just put together in<br>
the appropriate way and her mind expects programming to work the same<br>
way, but it doesn&#39;t, at least in the languages she has looked at so far.<br>
I hypothesized that a language emphasizing combinators might be more<br>
intuitive to her than a language emphasizing loops and imperative steps<br>
for precisely this reason. I&#39;m not entirely sure that she bought it, but<br>
she seemed to agree that it at least sounds nice in theory.<br>
<br>
Now I just have to convince her to become a willing subject in this<br>
experiment. ;)<br>
<br>
This question makes me wonder... why is explicit recursion taught first?<br>
I can&#39;t help but think now that it may be because those coming from<br>
imperative languages are used to writing loops, and recursion is the<br>
closest to loops that we have.<br>
<br>
- - Jake<div class="im"><br>
-----BEGIN PGP SIGNATURE-----<br>
Version: GnuPG v1.4.9 (GNU/Linux)<br>
Comment: Using GnuPG with Mozilla - <a href="http://enigmail.mozdev.org" target="_blank">http://enigmail.mozdev.org</a><br>
<br></div>
iEYEARECAAYFAknJYC4ACgkQye5hVyvIUKkExwCeLmejblGHyjdGsEkMykJ5bAJY<br>
pZ0AniaEpdgHCZzz2AALFYQ7X9WYEzws<br>
=R0qo<br>
-----END PGP SIGNATURE-----<div><div></div><div class="h5"><br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div><br>