<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div><div><br></div><div><div>On Jul 4, 2013, at 11:13 AM, Phil Bewig wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">Sorry, I meant this for the list, not just Grant.<div><br></div><div>After I wrote it, I looked again at my bookshelf and found <i>Elements of Functional Programming</i> by Chris Reade, which reminds me in a small way of SICP. It belongs in the intermediate/advanced category.</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jul 4, 2013 at 10:04 AM, Phil Bewig <span dir="ltr">&lt;<a href="mailto:pbewig@gmail.com" target="_blank">pbewig@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto; ">
<div dir="ltr">Jeff Ullman's book <i>Elements of ML Programming</i> got me started on both SML and functional languages in general. I still remember the feeling I had about halfway through the book: <i>this is the way programming should be done</i>.&nbsp;</div></blockquote></div></div></div></blockquote><div><br></div><div><br></div><div>Strange. All i recall are fundamental mistakes in presenting ML. For example, let is presented as a temporary assignment to a variable. ARGH!&nbsp;</div><div><br></div><br><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto; "><div dir="ltr"><div>

<div>For beginners, Ryan Stansifer's <i>ML Primer</i> and Ake Wikstrom's <i>Functional Programming Using Standard ML</i> are both quite basic. You can read Stansifer in an evening; there's not much there. Wikstrom is a good introduction to the language.</div></div></div></blockquote></div></div></div></blockquote><div><br></div><div>Agreed.&nbsp;</div><div><br></div><br><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto; "><div dir="ltr"><div>

<div><br></div><div>For intermediate programmers,&nbsp;<i>Programming with Standard ML</i>&nbsp;by Colin Myers, Chris Clack and Ellen Poon is good.&nbsp;Rachel Harrison's book&nbsp;<i>Abstract Data Types in Standard ML</i>&nbsp;is poorly written, but some of the code is good.</div>

<div><br></div><div>For advanced programmers, Larry Paulson's book&nbsp;<i>ML for the Working Programmer</i>&nbsp;is excellent, as you noted; I don't know what Matthias objects to.</div></div></div></blockquote></div></div></div></blockquote><div><br></div><div><br></div><div>I think Harper's perspective on ML is vastly superior to Paulson's who comes from a TP background and if I have a certain budget of reading minutes I go to the place(s) that matter.&nbsp;</div><div><br></div><div><br></div><div><br></div><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto; "><div dir="ltr"><div><div> So is Chris Okasaki's book&nbsp;<i>Purely Functional Data Structures</i>.&nbsp;</div></div></div></blockquote></div></div></div></blockquote><div><br></div><div><br></div><div>Worth reading when you have programmed in ML for a year and want to understand how to get rid of assignments.&nbsp;</div><div><br></div><div><br></div><div><br></div><br><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto; "><div dir="ltr"><div><div>S. Sokolowski's book&nbsp;<i>Applicative High Order Programming</i>&nbsp;gives a very mathematical treatment.</div>

</div><div><br></div><div>There's lots of conference proceedings if you go looking for them. And of course you will want to read both the Standard and the Commentary.</div>
</div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jul 4, 2013 at 9:36 AM, Grant Rettke <span dir="ltr">&lt;<a href="mailto:grettke@acm.org" target="_blank">grettke@acm.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
<br>
One of my current projects is to master as functional and statically<br>
typed programming language. Having discussed and debated it years ago<br>
(partially on list here, too) the conclusion was reached that SML<br>
would be a nicer place to start than Haskell or Clean. Fifteen years<br>
after its release, there seems to be a lot of knowledge but not a ton<br>
of resources exactly. There are a lot of dead links and books out of<br>
print (working off the SML/NJ resource list). I'm wondering of ACM's<br>
digital library is a good place to start.<br>
<br>
Last week I worked through _ML for the Working Programmers_ which was<br>
great but didn't get into the details in a way that I would have<br>
expected (went from 10mph to 100mph instead). Up next is _The Little<br>
MLer_ and Harpers _Programming in Standard ML_.<br>
<br>
This list's members have a breadth and depth far beyond most, so I'm<br>
wondering if I could get your help here and learn about your favorite<br>
learning SML resources.<br>
<br>
Best wishes,<br>
<span><font color="#888888"><br>
--<br>
Grant Rettke | ACM, AMA, COG, IEEE<br>
<a href="mailto:grettke@acm.org" target="_blank">grettke@acm.org</a> | <a href="http://www.wisdomandwonder.com/" target="_blank">http://www.wisdomandwonder.com/</a><br>
“Wisdom begins in wonder.” --Socrates<br>
((λ (x) (x x)) (λ (x) (x x)))<br>
“Life has become immeasurably better since I have been forced to stop<br>
taking it seriously.” --Thompson<br>
<br>
____________________<br>
&nbsp; Racket Users list:<br>
&nbsp; <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
</font></span></blockquote></div><br></div>
</div></div></blockquote></div><br></div></div>
____________________<br> &nbsp;Racket Users list:<br> &nbsp;<a href="http://lists.racket-lang.org/users">http://lists.racket-lang.org/users</a><br></blockquote></div><br></body></html>