<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:12px"><div dir="ltr" id="yui_3_16_0_1_1423161690362_15029"><span id="yui_3_16_0_1_1423161690362_15032">You might consider reading/using The Little Schemer to learn recursion (and a whole lot more).</span></div><div dir="ltr"><br><span id="yui_3_16_0_1_1423161690362_15032"></span></div><div dir="ltr"><br><span id="yui_3_16_0_1_1423161690362_15032"></span></div><div dir="ltr"><span id="yui_3_16_0_1_1423161690362_15032">Steve</span></div><br>  <div id="yui_3_16_0_1_1423161690362_14957" style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 12px;"> <div id="yui_3_16_0_1_1423161690362_14956" style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;"> <div id="yui_3_16_0_1_1423161690362_14991" dir="ltr"> <hr size="1">  <font id="yui_3_16_0_1_1423161690362_15028" face="Arial" size="2"> <b><span style="font-weight:bold;">From:</span></b> Geoffrey S. Knauth <geoff@knauth.org><br> <b><span style="font-weight: bold;">To:</span></b> users@racket-lang.org <br> <b><span style="font-weight: bold;">Sent:</span></b> Wednesday, February 4, 2015 10:25 AM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [racket] learning recursion<br> </font> </div> <div id="yui_3_16_0_1_1423161690362_14955" class="y_msg_container"><br>On Wed, Feb 4, 2015, at 13:01, Roelof Wobben wrote:<br clear="none">> Is racket a good language to learn recursion the right way ?<br clear="none"><br clear="none">Sure!  But it's really the educational material of How to Design<br clear="none">Programs (HtDP) [1] that comes with DrRacket that makes the experience<br clear="none">of learning the "right" patterns an easier experience than it might<br clear="none">otherwise be.  Also, this list is one of the friendliest lists you'll<br clear="none">find anywhere, with people of all experience levels getting along well,<br clear="none">where questions no matter how simple or complicated are almost always<br clear="none">answered by people who will point you in the right direction.<br clear="none"><br clear="none">As for what language is best, though I like Racket a lot, the principles<br clear="none">of HtDP can be applied to many languages.  When it comes to recursion,<br clear="none">the first thing to learn is when a recursion should stop.  Then you<br clear="none">learn that a recursive call is a natural and succinct way to<br clear="none">compartmentalize computation to the thing you are looking at right now,<br clear="none">combined with the result of similar computations that are aggregated<br clear="none">elegantly through recursion.  Later you learn how to make recursive<br clear="none">calls efficient.<br clear="none"><br clear="none">-- <br clear="none">Geoffrey S. Knauth | <a shape="rect" href="http://knauth.org/gsk" target="_blank">http://knauth.org/gsk</a><br clear="none"><br clear="none">[1] <a shape="rect" href="http://www.ccs.neu.edu/home/matthias/HtDP2e/" target="_blank">http://www.ccs.neu.edu/home/matthias/HtDP2e/</a><div class="qtdSeparateBR"><br><br></div><div class="yqt7284922584" id="yqtfd59539"><br clear="none">____________________<br clear="none">  Racket Users list:<br clear="none">  <a shape="rect" href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br clear="none"></div><br><br></div> </div> </div>  </div></body></html>